home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #2 / Amiga Plus CD - 1995 - No. 2.iso / internet / faq / englisch / scheme < prev    next >
Encoding:
Text File  |  1995-04-11  |  93.9 KB  |  1,852 lines

  1. Archive-name: scheme-faq/part1
  2. Last-Modified: Thu Feb  2 16:17:00 1995 by Mark Kantrowitz
  3. Version: 1.22
  4. Maintainer: Mark Kantrowitz and Barry Margolin <ai+lisp-faq@cs.cmu.edu>
  5. URL: http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/scheme/top.html
  6. Size: 54100 bytes, 1117 lines
  7.  
  8. ;;; ****************************************************************
  9. ;;; Answers to Frequently Asked Questions about Scheme *************
  10. ;;; ****************************************************************
  11. ;;; Written by Mark Kantrowitz and Barry Margolin
  12. ;;; scheme_1.faq 
  13.  
  14. This post contains part 1 of the Scheme FAQ.
  15.  
  16. If you think of questions that are appropriate for this FAQ, or would
  17. like to improve an answer, please send email to us at ai+lisp-faq@cs.cmu.edu.
  18.  
  19. Note that the lisp-faq mailing list is for discussion of the content
  20. of the FAQ posting only.  It is not the place to ask questions about Scheme;
  21. use either the scheme@ai.mit.edu mailing list, the comp.lang.scheme
  22. newsgroup or the Scheme Digest (scheme@mc.lcs.mit.edu) for that. If a
  23. question appears frequently in one of those forums, it will get added
  24. to the FAQ list. 
  25.  
  26. *** Copyright:
  27.  
  28. Copyright (c) 1993-94 by Mark Kantrowitz and Barry Margolin. 
  29. All rights reserved. 
  30.  
  31. This FAQ may be freely redistributed in its entirety without
  32. modification provided that this copyright notice is not removed.  It
  33. may not be sold for profit or incorporated in commercial documents
  34. (e.g., published for sale on CD-ROM, floppy disks, books, magazines,
  35. or other print form) without the prior written permission of the
  36. copyright holder.  Permission is expressly granted for this document
  37. to be made available for file transfer from installations offering
  38. unrestricted anonymous file transfer on the Internet.
  39.  
  40. If this FAQ is reproduced in offline media (e.g., CD-ROM, print form,
  41. etc.), a complimentary copy should be sent to Mark Kantrowitz, School
  42. of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue,
  43. Pittsburgh, PA 15213-3891 USA.
  44.  
  45. This article is provided AS IS without any express or implied warranty.
  46.  
  47. *** Topics Covered:
  48.  
  49. Topics Covered (Part 1):
  50.   [1-0]   What is the purpose of this newsgroup?
  51.   [1-2]   What is the difference between Scheme and Common Lisp?
  52.   [1-3]   Scheme books, introductions, documentation, periodicals,
  53.           journals, and conference proceedings. 
  54.   [1-4]   Where can I learn about implementing Scheme interpreters and 
  55.           compilers?
  56.   [1-7]   Standards for Scheme -- What are R4RS and IEEE P1178?
  57.   [1-8]   How do I do object-oriented programming in Scheme?
  58.   [1-9]   Repositories of Scheme Software
  59.   [1-10]  Publicly Redistributable Scheme Software
  60.   [1-11]  Formatting code in LaTeX (WEB and other literate programming tools)
  61.   [1-12]  Where can I get an implementation of Prolog in Scheme?
  62.   [1-13]  What does SICP, SCOOPS, R4RS, CAR, CDR, ... mean?
  63.   [1-14]  Why is there no EVAL in Scheme?
  64.   [1-15]  World-Wide Web (WWW) Resources
  65.   [1-16]  Why is Scheme called 'Scheme'?
  66.  
  67. Topics Covered (Part 2):
  68.   [2-1]   Free Scheme implementations.
  69.   [2-2]   Commercial Scheme implementations.
  70.   [2-3]   What Scheme-related discussion groups and mailing lists exist?
  71.  
  72. Search for \[#\] to get to question number # quickly.
  73.  
  74. *** Recent Changes:
  75.  
  76. ;;; 1.19:
  77. ;;; 20-OCT-94 mk    Added FTP location for Scheme84.
  78. ;;;  3-NOV-94 mk    FTP collections on altdorf.ai.mit.edu have moved to
  79. ;;;                 swiss-ftp.ai.mit.edu
  80. ;;;  3-NOV-94 mk    Added Christian Queinnec's Lisp book to [1-4].
  81. ;;;
  82. ;;; 1.20:
  83. ;;; 15-NOV-94 mk    Updated location of Ken Dickey article.
  84. ;;;
  85. ;;; 1.21:
  86. ;;; 22-NOV-94 mk    Scheme Repository at Indiana University WWW page.
  87. ;;;  7-DEC-94 mk    Updated EdScheme entry in [2-2].
  88. ;;;
  89. ;;; 1.22:
  90. ;;; 16-JAN-95 mk    Updated Schemers entry. 
  91. ;;; 31-JAN-95 mk    Added Manis' book to [1-3].
  92.  
  93. *** Introduction:
  94.  
  95. Certain questions and topics come up frequently in the various network
  96. discussion groups devoted to and related to Scheme.  This file/article is
  97. an attempt to gather these questions and their answers into a convenient
  98. reference for Scheme programmers.  It (or a reference to it) is posted
  99. periodically.  The hope is that this will cut down on the user time and
  100. network bandwidth used to post, read and respond to the same questions
  101. over and over, as well as providing education by answering questions
  102. some readers may not even have thought to ask.
  103.  
  104. This is not a Scheme tutorial, nor is it an exhaustive list of all Scheme
  105. intricacies.  Scheme is a very powerful and expressive language, but with
  106. that power comes many complexities.  This list attempts to address the
  107. ones that average Scheme programmers are likely to encounter.  If you are
  108. new to Scheme, see the answer to the question "How can I learn
  109. Scheme?" [1-3].
  110.  
  111. The latest version of this file is available via anonymous FTP from CMU: 
  112.  
  113.    To obtain the files from CMU, connect by anonymous FTP to 
  114.       ftp.cs.cmu.edu:/user/ai/pubs/faqs/scheme/  [128.2.206.173]
  115.    using username "anonymous" and password "name@host" (substitute your
  116.    email address) or via AFS in the Andrew File System directory
  117.       /afs/cs.cmu.edu/project/ai-repository/ai/pubs/faqs/scheme/
  118.    and get the files scheme_1.faq and scheme_2.faq.
  119.  
  120. You can also obtain a copy of the FAQ by sending a message to
  121. ai+query@cs.cmu.edu with 
  122.    Send Scheme FAQ
  123. in the message body.
  124.  
  125. An automatically generated HTML version of the Scheme FAQ is accessible by
  126. WWW as part of the AI-related FAQs Mosaic page. The URL for this
  127. resource is
  128.    http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/top.html
  129. The direct URL for the Lisp FAQ is
  130.    http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/scheme/top.html
  131.  
  132. We've tried to minimize the overlap with the FAQ postings to the
  133. comp.lang.lisp, comp.lang.clos and comp.ai newsgroups, so if you don't
  134. find what you're looking for here, we suggest you try the FAQs for
  135. those newsgroups. These FAQs should be available by anonymous ftp from
  136.    rtfm.mit.edu:/pub/usenet/news.answers/ [18.181.0.24]
  137. in the lisp-faq/, ai-faq/ and scheme-faq/ subdirectories or by email.
  138. For instructions on email retrieval, send a mail message to
  139. mail-server@rtfm.mit.edu with "help" and "index" on separate lines in
  140. the body of the message.
  141.  
  142. If you need to cite the FAQ for some reason, use the following format:
  143.    Mark Kantrowitz and Barry Margolin, "Answers to Frequently Asked
  144.    Questions about Scheme", comp.lang.scheme, <month>, <year>,
  145.    ftp.cs.cmu.edu:/user/ai/pubs/faqs/scheme/scheme_?.faq, 
  146.    ai+lisp-faq@cs.cmu.edu.
  147.  
  148. ----------------------------------------------------------------
  149. Subject: [1-0] What is the purpose of this newsgroup?
  150.  
  151. The newsgroup comp.lang.scheme exists for general discussion of
  152. topics related to the programming language Scheme. For example, possible
  153. topics can include (but are not necessarily limited to):
  154.    announcements of Scheme books and products
  155.    discussion of programs and utilities written in Scheme
  156.    discussion of portability issues
  157.    questions about possible bugs in Scheme implementations
  158.    problems porting an implementation to some architecture
  159. Postings should be of general interest to the Scheme community. See also
  160. question [2-3].
  161.  
  162. Questions about Common Lisp should be directed to the newsgroup
  163. comp.lang.lisp.  Discussion of object oriented programming in Lisp to
  164. the newsgroup comp.lang.clos. Discussion of functional programming
  165. language issues in general should be directed to the newsgroup
  166. comp.lang.functional.  Discussion of AI programs implemented in Scheme
  167. should sometimes be cross-posted to the newsgroup comp.ai.
  168.  
  169. ----------------------------------------------------------------
  170. Subject: [1-2] What is the difference between Scheme and Common Lisp?
  171.  
  172. Scheme is a dialect of Lisp that stresses conceptual elegance and
  173. simplicity. It is specified in R4RS and IEEE standard P1178. (See
  174. question [1-7] for details on standards for Scheme.) Scheme is much
  175. smaller than Common Lisp; the specification is about 50 pages,
  176. compared to Common Lisp's 1300 page draft standard. (See the Lisp FAQ
  177. for details on standards for Common Lisp.) Advocates of Scheme often
  178. find it amusing that the entire Scheme standard is shorter than the
  179. index to Guy Steele's "Common Lisp: the Language, 2nd Edition".
  180.  
  181. Scheme is often used in computer science curricula and programming
  182. language research, due to its ability to represent many programming
  183. abstractions with its simple primitives. Common Lisp is often used for
  184. real world programming because of its large library of utility
  185. functions, a standard object-oriented programming facility (CLOS), and
  186. a sophisticated condition handling system.
  187.  
  188. See question [1-8] for information about object-oriented programming
  189. in Scheme. 
  190.  
  191. In Common Lisp, a simple program would look something like the
  192. following:
  193.  
  194.    (defun fact (n)
  195.      (if (< n 2)
  196.          1
  197.          (* n (fact (1- n)))))
  198.  
  199. In Scheme, the equivalent program would like like this:
  200.  
  201.    (define fact
  202.      (lambda (n)
  203.        (if (< n 2)
  204.            1
  205.          (* n (fact (- n 1))))))
  206.  
  207. Experienced Lisp programmers might write this program as follows in order
  208. to allow it to run in constant space:
  209.  
  210.    (defun fact (n)
  211.      (labels ((tail-recursive-fact (counter accumulator)
  212.                 (if (> counter n)
  213.                     accumulator
  214.                     (tail-recursive-fact (1+ counter)
  215.                                          (* counter accumulator)))))
  216.        (tail-recursive-fact 1 1)))
  217.  
  218. Whereas in Scheme the same computation could be written as follows:
  219.  
  220.    (define fact
  221.      (lambda (n)
  222.        (letrec ((tail-recursive-fact
  223.                  (lambda (counter accumulator)
  224.                    (if (> counter n)
  225.                        accumulator
  226.                      (tail-recursive-fact (+ counter 1)
  227.                                           (* counter accumulator))))))
  228.                (tail-recursive-fact 1 1))))
  229.  
  230. or perhaps (using IEEE named LETs):
  231.  
  232.    (define fact
  233.      (lambda (n)
  234.        (let loop ((counter n)
  235.                   (accumulator 1))
  236.             (if (< counter 2)
  237.                 accumulator
  238.               (loop (- counter 1)
  239.                     (* accumulator counter))))))
  240.  
  241. Some Schemes allow one to use the syntax (define (fact n) ...) instead
  242. of (define fact (lambda (n) ...)).
  243.  
  244. ----------------------------------------------------------------
  245. Subject: [1-3] Scheme books, introductions, documentation, periodicals, 
  246.                journals, and conference proceedings.
  247.  
  248. Introductions to Scheme:
  249.  
  250.    The following four books from MIT Press are listed in order of
  251.    increasing difficulty. The first is good for the complete novice,
  252.    the second for students with little or no previous exposure to programming,
  253.    and the third and fourth for more advanced students. The third and
  254.    fourth may also be used to learn a variety of powerful programming
  255.    language concepts. One of these books will suit your needs.
  256.  
  257.    1. Daniel P. Friedman and M. Felleisen.
  258.       "The Little LISPer"
  259.       MIT Press (Cambridge, MA), 3rd printing, 1989. ISBN 0-262-56038-0.
  260.       Science Research Associates (Chicago), 3rd ed, 1989. 206 pages.
  261.  
  262.       Good for a quick introduction. Uses Scheme instead of Common Lisp.
  263.       (The book uses a dialect of Scheme with footnotes about translating to
  264.       Scheme or Common Lisp. The footnotes won't allow a non-expert to use
  265.       Common Lisp for the advanced chapters because of the complexity.)
  266.  
  267.    2. Brian Harvey and Matthew Wright
  268.       "Simply Scheme: Introducing Computer Science"
  269.       MIT Press, Cambridge, MA, 1994. 583 pages. 
  270.       ISBN 0-262-08226-8. $49.95.
  271.  
  272.       This book is ideal for students with little or no previous exposure to
  273.       programming. The book is designed to be used before SICP (the authors
  274.       call it a SICP "prequel"), and makes Scheme fun by sheltering the
  275.       students from potentially confusing technical details. Unlike Pascal
  276.       or C, the emphasis is on ideas, not obscure matters of syntax and
  277.       arbitrary rules of style.  High schools who have shied away from using
  278.       Scheme because they found SICP to be too challenging should consider
  279.       using this book instead.
  280.  
  281.       The text gradually and gently introduces students to some of the key
  282.       concepts of programming in Scheme. It starts off with functions and
  283.       function composition and continues with the notion of functions as
  284.       data (first-class functions) and programs that write programs
  285.       (higher-order functions).  Since the complexity of the language is
  286.       hidden, students can get involved in some of the more interesting and
  287.       fun aspects of the language earlier than in other texts.  Then the
  288.       book progresses through the more complicated concepts of lambda,
  289.       recursion, data abstraction and procedural abstraction, and concludes
  290.       with sequential techniques, but with careful attention to topics
  291.       students often find difficult.  There are five chapters on recursion
  292.       alone! There's also a pitfalls section at the end of most chapters to
  293.       help students recognize and avoid common errors.
  294.  
  295.       The book uses several programs as examples, including a tic-tac-toe
  296.       program, a pattern matcher, a miniature spreadsheet, and a simple
  297.       database program.  Source code for the programs is available by
  298.       anonymous ftp from anarres.cs.berkeley.edu:/pub/scheme/, or for $10 on
  299.       IBM or Macintosh diskettes from the publisher.
  300.  
  301.    3. Harold Abelson and Gerald Jay Sussman, with Julie Sussman.
  302.       "Structure and Interpretation of Computer Programs"
  303.       MIT Press (Cambridge, MA) and McGraw-Hill (New York), 1985.
  304.       542 pages. ISBN 0-262-01077-1, $55. The teacher's manual, which is
  305.       also available from MIT Press (ISBN 0-262-51046-4 $20), does NOT
  306.       contain solutions to the exercises, but does contain hints on
  307.       teaching with the book. 
  308.  
  309.       Starts off introductory, but rapidly gets into powerful
  310.       Lisp-particular constructs, such as using closures,
  311.       building interpreters, compilers and object-oriented systems.  Often
  312.       referred to by its acronym, SICP, which is pronounced "Sick-Pee". This
  313.       is the classical text for teaching program design using Scheme,
  314.       and everybody should read it at least once. MIT problem sets are
  315.       available from the repositories, and materials from Gustavus
  316.       Adolphus College are available from ftp.gac.edu:/pub/SICP/. 
  317.  
  318.    4. George Springer and Daniel P. Friedman
  319.       "Scheme and the Art of Programming" 
  320.       MIT Press and McGraw Hill, 1990, 596 pages.
  321.       ISBN 0-262-19288-8, $50.
  322.  
  323.       Introduces basic concepts of programming in Scheme. Also deals with
  324.       object oriented programming, co-routining, continuations.  Gives
  325.       numerous examples. Has more of an emphasis on teaching Scheme than
  326.       SICP, and can be seen as an alternative to SICP.  Source code from the
  327.       chapters is available from 
  328.           ftp.cs.indiana.edu:/pub/scheme-repository/doc/lit/sap/
  329.  
  330.    5. Iain Ferguson, Edward Martin, and Burt Kaufman
  331.       "The Schemer's Guide"
  332.       Schemer's Inc. (see EdScheme entry in [2-2]). 328 pages ($30).
  333.          
  334.       Maintains a very down-to-earth approach. Good for use in
  335.       teaching Scheme to high school students.
  336.  
  337.  
  338. Older Introductions to Scheme:
  339.  
  340.    1. Smith, Jerry D.
  341.       "Introduction to Scheme"
  342.        Prentice Hall (Englewood Cliffs, NJ), 1988, 324 pages.
  343.            Focuses on PC Scheme.
  344.  
  345.    2. Michael Eisenberg 
  346.       "Programming in Scheme"
  347.       Scientific Press (Redwood City, CA), 1988. 304 pages.
  348.  
  349.    3. Two articles in BYTE Magazine, February 1988, by Abelson and
  350.       Sussman, and Clinger.
  351.  
  352. Online Introductions to Scheme:
  353.  
  354.    1. The Ken Dickey article, "The Scheme Programming Language", in
  355.       COMPUTER LANGUAGES magazine, June 1992, is available from the
  356.       Scheme Repository at 
  357.           ftp.cs.indiana.edu:/pub/scheme-repository/doc/pubs/intro.txt
  358.       The Revised^4 Report on the Algorithmic Language Scheme is also 
  359.       available from the Scheme Repository.
  360.  
  361.    2. The Info files from the MIT Scheme implementation.
  362.  
  363.    3. "Introductory Scheme" by Joseph W. Lavinus and James D. Arthur,
  364.        <lavinus@virginia.edu>. Available from the Lisp Utilities
  365.        Repository as ftp.cs.cmu.edu:/user/ai/lang/scheme/doc/intro/ 
  366.        as scmintro.tgz.
  367.  
  368. Scheme and Artificial Intelligence:
  369.  
  370.    1. Wolfgang Kreutzer and Bruce McKenzie
  371.       "Programming for Artificial Intelligence: 
  372.        Methods, Tools and Applications"
  373.       Addison-Wesley (Reading, MA), 1990. 682 pages. 
  374.       ISBN 0-201-41621-2.
  375.            Discusses Scheme, Prolog, and Smalltalk, gives an overview of
  376.            the history and philosophy of AI, surveys three major
  377.            programming paradigms (procedural, declarative, and
  378.            object-oriented), and metaphors to AI programming.
  379.            Source code from the chapters is available from 
  380.               ftp.cs.indiana.edu:/pub/scheme-repository/lit/
  381.            as aibook.tar.Z. Some of the programs will only run under MacScheme.
  382.  
  383. Scheme-based Computer Science Texts:
  384.  
  385.    1. Vincent Manis and James Little
  386.       "The Schematics of Computation"
  387.       Prentice-Hall, Inc., 1995. 848 pages
  388.       ISBN 0-13-834284-9 (North America), $41
  389.       ISBN 0-13-433772-7 (International).
  390.  
  391.       For a copy of the publication announcement, see 
  392.          ftp.cs.cmu.edu:/user/ai/pubs/books/announce/manis95
  393.  
  394. General Scheme reference books include:
  395.  
  396.    1. K. Dybvig
  397.       "The Scheme programming language"
  398.       Prentice Hall, 1987.
  399.          Good reference for Scheme.
  400.  
  401. Scheme-related periodicals include:
  402.         
  403.    1. LISP Pointers.
  404.       Published by ACM SIGPLAN six times a year. Volume 1, Number 1
  405.       was April-May 1987. 
  406.       Subscriptions: ACM Members $12; ACM Student Members $7; Non-ACM
  407.       members $25. Mail checks payable to the ACM to ACM Inc., PO Box
  408.       12115, Church Street Station, New York, NY 10249.
  409.  
  410.    2. LISP and Symbolic Computation, Kluwer Academic Press. Volume 1
  411.       was published in 1989. (jlz@lucid.com is the editor).  ISSN 0892-4635.
  412.       Subscriptions: Institutions $169; Individuals $80. Add $8 for
  413.       air mail. Kluwer Academic Publishers, PO Box 322, 3300 AH Dordrecht, 
  414.       The Netherlands, or Kluwer Academic Publishers, PO Box 358, Accord
  415.       Station, Hingham, MA 02018-0358. 
  416.  
  417.    3. Proceedings of the biannual ACM Lisp and Functional Programming
  418.       Conference. (First one was in 1980.)
  419.  
  420.    4. Proceedings of the annual Lisp Users and Vendors Conference.
  421.  
  422. See also the Scheme Bibliography from the Scheme Repository
  423. (ftp.cs.indiana.edu:/pub/scheme-repository/) for additional readings.
  424. A large number of technical reports on Scheme are now available in the
  425. text section (ftp.cs.indiana.edu:/pub/scheme-repository/txt/).
  426.  
  427. ----------------------------------------------------------------
  428. Subject: [1-4] Where can I learn about implementing Scheme interpreters  
  429.                and compilers?
  430.  
  431. There is no single book that is really comprehensive, so you will have
  432. to combine reading the sources to the various free implementations
  433. (e.g., Gambit [Feeley] and S48 [Rees]) with bits and pieces of tech
  434. reports and various books.
  435.  
  436. Books about Scheme implementation include:
  437.  
  438.    1. John Allen
  439.       "Anatomy of Lisp"
  440.       McGraw-Hill, 1978. 446 pages. ISBN 0-07-001115-X
  441.  
  442.    2. Samuel Kamin
  443.       "Programming Languages, An Interpreter-Based Approach"
  444.       Addison-Wesley, Reading, Mass., 1990. ISBN 0-201-06824-9
  445.            Includes sources to several interpreters for Lisp-like
  446.            languages, and a pointer to sources via anonymous ftp.
  447.  
  448.    3. Sharam Hekmatpour
  449.       "Lisp: A Portable Implementation"
  450.       Prentice Hall, 1985. ISBN 0-13-537490-X.
  451.            Describes a portable implementation of a small dynamic
  452.            Lisp interpreter (including C source code). 
  453.  
  454.    4. Peter Henderson
  455.       "Functional Programming: Application and Implementation"
  456.       Prentice-Hall (Englewood Cliffs, NJ), 1980. 355 pages.
  457.  
  458.    5. Peter M. Kogge
  459.       "The Architecture of Symbolic Computers"
  460.       McGraw-Hill, 1991. ISBN 0-07-035596-7.
  461.            Includes sections on memory management, the SECD and
  462.            Warren Abstract Machines, and overviews of the various
  463.            Lisp Machine architectures.
  464.    
  465.    6. Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes
  466.       "Essentials of Programming Languages"
  467.       MIT Press, 1992, 536 pages. ISBN 0-262-06145-7, $55.
  468.            Teaches fundamental concepts of programming language
  469.            design by using small interpreters as examples. Covers
  470.            most of the features of Scheme. Includes a discussion
  471.            of parameter passing techniques, object oriented languages,
  472.            and techniques for transforming interpreters to allow
  473.            their implementation in terms of any low-level language.
  474.            Also discusses scanners, parsers, and the derivation of
  475.            a compiler and virtual machine from an interpreter.
  476.            Source files available by anonymous ftp from 
  477.               ftp.cs.indiana.edu:/pub/eopl/ (129.79.254.191) or from the
  478.            Scheme Repository.
  479.  
  480.    7. Peter Lee, editor, "Topics in Advanced Language Implementation",
  481.       The MIT Press, Cambridge, Mass., 1991.
  482.            Articles relevant to the implementation of functional
  483.            programming languages.
  484.  
  485.    8. Also see the proceedings of the biannual ACM Lisp and Functional
  486.       Programming conferences, the implementation notes for CMU Common Lisp,
  487.       Peter Norvig's book ("Paradigms of AI Programming: Case Studies
  488.       in Common Lisp", Morgan Kaufmann, 1992. 946 pages. ISBN
  489.       1-55860-191-0), and SICP (Abelson & Sussman). 
  490.  
  491.    9. Christian Queinnec
  492.       "Les Langages Lisp"
  493.       InterEditions (in French), 1994. 500 pages.
  494.       ISBN 2-7296-0549-5, 61-2448-1. (?)
  495.  
  496.       The book covers Lisp, Scheme and other related dialects,
  497.       their interpretation, semantics and compilation.
  498.  
  499.       All of the programs described in the book are available by
  500.       anonymous ftp from
  501.          ftp.inria.fr:/INRIA/Projects/icsla/Books/LiSP94Sep05.tar.gz
  502.       For more information, see the book's URL
  503.          file://ftp.inria.fr/INRIA/Projects/icsla/WWW/LiSP.html
  504.       or contact the author at Christian.Queinnec@inria.fr
  505.  
  506. Technical reports and journal articles about Scheme implementation include:
  507.  
  508.    Mitchell Wand and Daniel P. Friedman, "Compiling Lambda Expressions
  509.    Using Continuations and Factorizations", Journal of Computer Languages
  510.    3(1978), 241-263.
  511.  
  512.    Guy Lewis Steele Jr., "Rabbit: A Compiler for Scheme", MIT AI Memo
  513.    474, Massachusetts Institute of Technology, Cambridge, MA, May 1978.
  514.  
  515.    Guy Lewis Steele Jr., "Compiler Optimization Based on Viewing LAMBDA
  516.    as RENAME + GOTO", in "Artificial Intelligence: An MIT Perspective",
  517.    Patrick Henry Winston and Richard Henry Brown (eds.), MIT Press,
  518.    Cambridge, MA, 1980.
  519.  
  520.    Jonathan A. Rees and Norman I. Adams, "T: A Dialect of Lisp or,
  521.    LAMBDA: The Ultimate Software Tool", Conference Record of the 1982 ACM
  522.    Symposium on Lisp and Functional Programming, 1982, 114-122.
  523.  
  524.    R. Kent Dybvig, "C-Scheme", Computer Science Department Technical
  525.    Report #149 (MS Thesis), Indiana University, Bloomington, IA, 1983.
  526.  
  527.    William Clinger, "The Scheme 311 compiler: An Exercise in Denotational
  528.    Semantics", Conference Record of the 1984 ACM Symposium on Lisp and
  529.    Functional Programming, 1984, 356-364.
  530.  
  531.    Guillermo J. Rozas, "Liar, an Algol-like Compiler for Scheme", S.B.
  532.    Thesis, Department of Electrical Engineering and Computer Science,
  533.    Massachusetts Institute of Technology, January 1984.
  534.  
  535.    David H. Bartley and John C. Jensen, "The Implementation of PC
  536.    Scheme", Proceedings of the 1986 ACM Conference on Lisp and Functional
  537.    Programming, 1986, 86-93.
  538.  
  539.    David Kranz, Richard Kelsey, Jonathan A. Rees, Paul Hudak, James
  540.    Philbin and Norman I. Adams, "Orbit: An Optimizing Compiler for
  541.    Scheme", Proceedings of the SIGPLAN Notices '86 Symposium on Compiler
  542.    Construction, June 1986, 219-233.  Published as SIGPLAN Notices 21(7),
  543.    July 1986.
  544.  
  545.    Marc Feeley, "Deux Approches a' L'implantation du Language Scheme",
  546.    M.Sc. Thesis, De'partement d'Informatique et de Recherche
  547.    Ope'rationelle, University of Montreal, May 1986.
  548.  
  549.    R. Kent Dybvig, "Three Implementation Models for Scheme", Department
  550.    of Computer Science Technical Report #87-011 (Ph.D. Dissertation),
  551.    University of North Carolina at Chapel Hill, Chapel Hill, North
  552.    Carolina, April 1987.
  553.  
  554.    William D. Clinger, Anne H. Hartheimer and Eric M. Ost,
  555.    "Implementation Strategies for Continuations", Conference Record of
  556.    the 1988 ACM Conference on Lisp and Functional Programming, August
  557.    1988, 124-131.
  558.  
  559.    David Kranz, "Orbit: An Optimizing Compiler for Scheme", Computer
  560.    Science Technical report #632 (Ph.D. Dissertation), Yale University,
  561.    1988.
  562.  
  563.    Joel F. Bartlett, "SCHEME->C a Portable Scheme-to-C Compiler",
  564.    Research Report 89/1, Dec. Western Research Laboratory, Palo Alto, CA,
  565.    January 1989.
  566.  
  567.    Marc Feeley and James S. Miller, "A Parallel Virtual Machine for
  568.    Efficient Scheme Compilation", Proceedings of the 1990 ACM Conference
  569.    on Lisp and Functional Programming, Nice, France, June 1990.
  570.  
  571.    Chris Hanson, "Efficient Stack Allocation for Tail-Recursive
  572.    Languages", Proceedings of the 1990 ACM Conference on Lisp and
  573.    Functional Programming, Nice, France, June 1990.
  574.  
  575.    Robert Hieb, R. Kent Dybvig and Carl Bruggeman, "Representing Control
  576.    in the Presence of First-Class Continuations", Proceedings of the
  577.    SIGPLAN Notices '90 Conference on Programming Language Design and
  578.    Implementation, White Plains, New York, June 1990, 66-77.
  579.  
  580.    Guillermo Rozas, "Taming the Y Operator", Proceedings of the 1992 ACM
  581.    Conference on Lisp and Functional Programming, San Francisco, CA,
  582.    June 1992, 226-234.
  583.  
  584.    Dan Teodosiu, "HARE: An Optimizing Portable Compiler for Scheme", ACM
  585.    Sigplan Notices 26(1), January 1991.
  586.  
  587. ----------------------------------------------------------------
  588. Subject: [1-7] Standards for Scheme -- What are R4RS and IEEE P1178?
  589.  
  590. R4RS is the Revised^4 Report on the Algorithmic Language Scheme,
  591. edited by W. Clinger and J. Rees. It appeared in ACM Lisp Pointers IV,
  592. July-September 1991, and also as MIT AI Memo 848b. It serves as a kind
  593. of standard for the language. It can be obtained by anonymous ftp at
  594. the two Scheme Repositories, swiss-ftp.ai.mit.edu and ftp.cs.indiana.edu.
  595. A HTML version is available as
  596.    ftp://swiss-ftp.ai.mit.edu/pub/scm/HTML/r4rs_toc.html
  597. or
  598.    http://www.maths.tcd.ie/scrg/scheme/index.html
  599.  
  600. IEEE P1178 is IEEE Standard 1178-1990, "IEEE Standard for the Scheme
  601. Programming Language", published by IEEE in 1991. ISBN 1-55937-125-0.
  602. It is now also an ANSI standard. It may be ordered from IEEE by
  603. calling 1-800-678-IEEE or 908-981-1393 or writing IEEE Service
  604. Center, 445 Hoes Lane, P.O. Box 1331, Piscataway, NJ 08855-1331, 
  605. and using order number SH14209 ($28 for IEEE members, $40 others).
  606.  
  607. ----------------------------------------------------------------
  608. Subject: [1-8] How do I do object-oriented programming in Scheme?
  609.  
  610. Some Scheme implementations (for example, MacScheme, Feel, Oaklisp, XScheme,
  611. and PC-Scheme) include built-in object-oriented extensions.  
  612.  
  613. BOS (Bryan's Object System) is a very small object system for Scheme.
  614. It is based around generic functions and multiple inheritance.  BOS
  615. provides more or less the same features as Meroon and the Tiny CLOS
  616. base language. Even though it has not been optimised, it should be
  617. quite a bit faster than those because it does not include a MOP.
  618. BOS has been tested under Scheme 48 and SCM, and should run under any
  619. fairly modern Scheme implementation (especially any which runs SLIB)
  620. with little or no change.  It is available by anonymous ftp from
  621.    ftp.maths.tcd.ie:/pub/bosullvn/misc/bos.tar.gz
  622. and the CMU AI Repository in
  623.    ftp.cs.cmu.edu:/user/ai/lang/scheme/oop/bos/
  624. For more information, write to Bryan O'Sullivan <bosullvn@maths.tcd.ie>.
  625.  
  626. MEROON is a package written in Scheme to provide the basic facilities
  627. of an object-oriented programming style through three macros:
  628. define-class, define-generic, and define-method. MEROON offers simple
  629. inheritance, reflective metaclasses and simple dispatching generic
  630. functions with support for multimethods. MEROON also offers indexed
  631. fields subsuming Scheme vectors without inheritance restrictions.
  632. Meroon runs in Scheme->C, PC-Scheme, Chez Scheme, Elk, Bigloo, SCM
  633. with SLIB, and MacGambit. MEROON sources and documentation may be
  634. found in the Scheme Repository as
  635.    ftp.cs.indiana.edu:/pub/scheme-repository/new/meroon.*.tar.Z
  636. and also from
  637.    ftp.inria.fr:/pub/INRIA/icsla/Programs/MeroonV3*.tar.gz [128.93.1.26]
  638. The file meroonet*.tar.gz is a toy version of meroon. For more
  639. information, contact Christian Queinnec <queinnec@polytechnnique.fr>
  640. or <Christian.Queinnec@inria.fr>.
  641.  
  642. SCOOPS (Scheme Object Oriented Programming System) is an object system
  643. for Scheme written by Amitabh Srivastava/Texas Instruments with 
  644. re-writes by Steve Sherin <sherin@linc.cis.upenn.edu>. [Email to this
  645. address bounced 7/7/93.] This package needs first-class environments.
  646. It is available from the Scheme Repository as
  647. /pub/scheme-repository/scm/scoops.sha. 
  648.  
  649. Tiny CLOS is a Scheme implementation of a `kernelized' CLOS, with a
  650. metaobject protocol. The implementation is even simpler than the
  651. simple CLOS found in `The Art of the Metaobject Protocol,' weighing in
  652. at around 850 lines of code, including (some) comments and
  653. documentation. Tiny CLOS is available by anonymous ftp from
  654. parcftp.xerox.com:/pub/mops/. Tiny CLOS runs in MIT Scheme 11.74 and
  655. should run with only minor modifications in other Schemes as well. If
  656. you want to be added to the mops@parc.xerox.com mailing list
  657. (technical questions and discussion only), send mail to Gregor Kiczales
  658. <gregor@parc.xerox.com>.
  659.  
  660. YASOS (Yet Another Scheme Object System) is fairly functional in style
  661. and uses delegation.  The implementation includes multiple inheritance
  662. and "send to super" and is much smaller than class-based OO systems.
  663. See Ken Dickey, "Scheming with Objects", AI Expert 7(10):24-33,
  664. October 1992. A copy of the article and YASOS code is available from
  665. the Scheme Repository in pub/scheme-repository/txt/swob.txt. YASOS is also
  666. included as part of SLIB. For further information, contact Ken Dickey
  667. <kend@newton.apple.com>.
  668.  
  669. ----------------------------------------------------------------
  670. Subject: [1-9] Repositories of Scheme Software
  671.  
  672. There are several repositories of publicly redistributable and
  673. public domain Scheme code. 
  674.  
  675. CMU AI Repository, Scheme Section:
  676.  
  677.    The Scheme Section of the CMU Artificial Intelligence Repository
  678.    is accessible by anonymous ftp to
  679.       ftp.cs.cmu.edu:/user/ai/lang/scheme/ [128.2.206.173]
  680.    through the AFS directory
  681.       /afs/cs.cmu.edu/project/ai-repository/ai/lang/scheme/
  682.    or by WWW from the URL   
  683.       http://www.cs.cmu.edu:8001/Web/Groups/AI/html/repository.html
  684.    and includes more than 200 megabytes of sources and other materials
  685.    of interest to Scheme programmers, including all freely
  686.    distributable implementations and many programs.  Unlike the Scheme
  687.    Repository at Indiana University, the entire contents of the CMU AI
  688.    Repository has been keyword indexed to provide convenient browsing
  689.    of the contents.
  690.  
  691.    The repository has standardized on using 'tar' for producing
  692.    archives of files and 'gzip' for compression.
  693.  
  694.    To search the keyword index by mail, send a message to:
  695.       ai+query@cs.cmu.edu
  696.    with one or more lines containing calls to the keys command, such as:
  697.       keys scheme awk
  698.    in the message body.  Keywords may be regular expressions and are
  699.    compared with the index in a case-insensitive conjunctive fashion.  
  700.    You'll get a response by return mail. Do not include anything else in 
  701.    the Subject line of the message or in the message body.  For help on
  702.    the query mail server, include: 
  703.       help
  704.    instead. 
  705.  
  706.    A Mosaic interface to the keyword searching program is in the
  707.    works.  We also plan to make the source code (including indexes) to
  708.    this program available, as soon as it is stable.
  709.  
  710.    Most of the Scheme Section of the AI Repository appears on Prime Time 
  711.    Freeware for AI, Issue 1-1, a mixed-media book/CD-ROM publication. It
  712.    includes two ISO-9660 CD-ROMs bound into a 224 page book and sells
  713.    (list) for US$60 plus applicable sales tax and shipping and handling
  714.    charges. Payable through Visa, Mastercard, postal money orders in US
  715.    funds, and checks in US funds drawn on a US bank. For more
  716.    information write to Prime Time Freeware, 370 Altair Way, Suite 150,
  717.    Sunnyvale, CA  94086  USA, call 408-433-9662, 408-433-0727 (fax),
  718.    or send email to ptf@cfcl.com.
  719.  
  720.    Contributions of software and other materials are always welcome but
  721.    must be accompanied by an unambiguous copyright statement that grants
  722.    permission for free use, copying, and distribution -- either a
  723.    declaration by the author that the materials are in the public domain,
  724.    that the materials are subject to the GNU General Public License (cite
  725.    version), or that the materials are subject to copyright, but the
  726.    copyright holder grants permission for free use, copying, and
  727.    distribution. (We will tell you if the copying permissions are too
  728.    restrictive for us to include the materials in the repository.)
  729.    Inclusion of materials in the repository does not modify their
  730.    copyright status in any way. Materials may be placed in:
  731.       ftp.cs.cmu.edu:/user/ai/new/
  732.    When you put anything in this directory, please send mail to
  733.       ai+contrib@cs.cmu.edu
  734.    giving us permission to distribute the files, and state whether
  735.    this permission is just for the AI Repository, or also includes
  736.    publication on the CD-ROM version (Prime Time Freeware for AI).
  737.    We would also appreciate if you would include a 0.doc file for your
  738.    package; see /user/ai/new/package.doc for a template. (If you don't
  739.    have the time to write your own, we can write it for you based on
  740.    the information in your package.)
  741.  
  742.    The Scheme Section of the AI Repository is maintained by Mark Kantrowitz 
  743.    <AI.Repository@cs.cmu.edu>. 
  744.  
  745. Scheme Repository at Indiana University:
  746.  
  747.    The Scheme Repository at Indiana University contains a Scheme
  748.    bibliography, copies of the R4RS report and other papers, sample
  749.    Scheme code for a variety of purposes, several utilities, and some
  750.    implementations. The Scheme code includes code for calendar
  751.    calculations, Earley parser, FORMAT for Scheme, a scheme version of
  752.    the Gabriel benchmarks, Marc Feeley's minimal object support for
  753.    Scheme, a Scheme pretty-printer, a Prolog interpreter written in
  754.    Scheme, a random number generator in Scheme, an implementation of
  755.    SCOOPS, code from Abelson and Sussman's SICP book, Aubrey Jaffer's
  756.    IEEE/R4RS compliance test, an implementation of matrices, a Scheme
  757.    implementation of the Common Lisp FORMAT function, a Scheme front end
  758.    to Adobe Illustrator PostScript, and a LALR(1) parser (ZEBU).  The
  759.    repository was established by Ozan S. Yigit and is currently
  760.    maintained by David Eby and John Zuckerman. Send administrative
  761.    requests to
  762.       scheme-repository-request@cs.indiana.edu
  763.    The repository is accessible by anonymous ftp at 
  764.       ftp.cs.indiana.edu:/pub/scheme-repository/   [129.79.254.191]
  765.    or by WWW to
  766.       http://www.cs.indiana.edu/scheme-repository/home.html
  767.    The repository is mirrored in INRIA, courtesy of Christian Queinnec
  768.    [Ecole Polytechnique and INRIA-Rocquencourt], ftp.inria.fr:/lang/Scheme/
  769.    and also faui80.informatik.uni-erlangen.de:/pub/scheme/yorku
  770.  
  771. Other Scheme Collections:
  772.  
  773.    Scheme Implementations may also be found at swiss-ftp.ai.mit.edu:/archive/ 
  774.    The R4RS report is available in 
  775.       swiss-ftp.ai.mit.edu:/archive/scheme-reports/
  776.    or as MIT AI Memo 848b (email publications@ai.mit.edu for more information).
  777.    The swiss-ftp archive includes SCOOPS, CL2Scheme, extend-syntax,
  778.    btree, Gabriel benchmarks, FORMAT for Scheme, etc.
  779.  
  780.    The GI (German Computer Science Society) Scheme Archive contains a
  781.    variety of scheme programs, utilities, code from theses, and other
  782.    materials. It also mirrors the Scheme Repository.  It is
  783.    accessible by anonymous ftp to faui80.informatik.uni-erlangen.de
  784.    (login as 'ftp', giving your email address as the password).
  785.       pub/scheme/gi                # GI Scheme Archive
  786.       pub/scheme/yorku             # Internet Scheme Repository
  787.    Direct questions to scheme@faui80.informatik.uni-erlangen.de.
  788.    The GI Scheme Archive is supported by the German Computer Society Special
  789.    Interest Group on AI programming and sponsored by the Bavarian AI Center
  790.    FORWISS -- Research Institute for Knowledge Based Systems.
  791.  
  792. ----------------------------------------------------------------
  793. Subject: [1-10] Publicly Redistributable Scheme Software
  794.  
  795.    SLIB (Standard Scheme Library) is a portable scheme library that
  796.    provides compatibility and utility functions for many of the
  797.    standard scheme implementations, including Chez, ELK 2.1, GAMBIT,
  798.    MITScheme, scheme->C, Scheme48, T3.1, VSCM and Scm4e. It is available by
  799.    anonymous ftp from 
  800.        swiss-ftp.ai.mit.edu:/archive/scm/slib2a1.tar.gz
  801.        prep.ai.mit.edu:/pub/gnu/jacal/slib2a1.tar.gz
  802.        ftp.cs.indiana.edu:/pub/scheme-repository/new/slib2a1.tar.gz
  803.    Now includes a FAQ file.
  804.  
  805.    TEST.SCM is an IEEE and R4RS conformance test suite.  It is available
  806.    from 
  807.       swiss-ftp.ai.mit.edu:/archive/scm/test.scm
  808.       prep.ai.mit.edu:/pub/gnu/jacal/test.scm
  809.       ftp.cs.indiana.edu:/pub/scheme-repository/new/test.scm
  810.  
  811.    PSD (Portable Scheme Debugger) is available by anonymous ftp
  812.    from Tampere University of Technology, Finland,
  813.       ftp.cs.tut.fi:/pub/src/languages/schemes/psd-1.1.tar.Z
  814.    With PSD, you can run a Scheme program in an Emacs buffer, set
  815.    breakpoints, single step evaluation and access and modify the
  816.    program's variables. It works by instrumenting the original source
  817.    code, so it should run with any R4RS compliant Scheme. It has been
  818.    tested with SCM and Elk 1.5, but should work with other Schemes with a
  819.    minimal amount of porting, if at all. Includes documentation and
  820.    user's manual. Written by Pertti Kellom\"aki, pk@cs.tut.fi
  821.    The Lisp Pointers article describing PSD (Lisp Pointers VI(1):15-23,
  822.    January-March 1993) is available as 
  823.       http://www.cs.tut.fi/staff/pk/scheme/psd/article/article.html
  824.  
  825.    SCLINT is a lint-like program for Scheme. It checks for consistency of
  826.    indentation, syntax of special forms, and the number of arguments to
  827.    primitive and most user-defined procedures. This is not a full
  828.    implementation, but rather a quick hack. It is used in teaching
  829.    programming at the Tampere University of Technology. It is available
  830.    by anonymous ftp from 
  831.       ftp.cs.tut.fi:/pub/src/languages/schemes/sclint-0.9.tar.Z.
  832.    For further information, write to Pertti Kellom\"aki <pk@cs.tut.fi>.
  833.  
  834.    A bibliography of work in functional programming can be obtained by 
  835.    anonymous ftp from tamdhu.dcs.st-andrews.ac.uk:/pub/staple/pubs.txt
  836.    (138.251.192.40). It uses a refer-like format with %T for title, %A
  837.    for authors %I for a unique index entry %S for source (possibly a
  838.    reference to another index) %K for keywords and %C for comments.
  839.    Compiled by Tony Davie, <ajtd@honey.st-and.ac.uk>. [Email bounced, 7/7/93.]
  840.  
  841.    Scheme Utilities -- brokaw.lcs.mit.edu:/pub/scmutils.tar  18.30.0.33
  842.    [This collection seems to no longer be located on brokaw -- does
  843.    anybody know the current location?]
  844.  
  845.    A collection of Scheme implementations of data structures and
  846.    algorithms is available by anonymous ftp from 
  847.       ftp.cs.tut.fi:/pub/src/languages/schemes/
  848.    as the file scheme-algorithms.tar. For more information, contact
  849.    Pertti Kellom\"aki <pk@cs.tut.fi>. 
  850.  
  851.    6.001. The User's Manual, example code, and problem sets from MIT's
  852.    course "Structure and Interpretation of Computer Programs" are 
  853.    available by anonymous ftp from swiss-ftp.ai.mit.edu:/archive/6.001/
  854.    [18.23.0.16].
  855.  
  856.    Steele's Constraint System. Chris Hanson's implementation of Steele's
  857.    constraint system is available for anonymous ftp from
  858.       swiss-ftp.ai.mit.edu:/archive/cph/constraint.tar [18.23.0.16]
  859.       ftp.cs.indiana.edu:/pub/scheme-repository/new/constraint.tar.Z
  860.    A compressed version is also stored there. The software is source code
  861.    for MIT Scheme. It should run in release 7.1.3. Most of the MIT Scheme
  862.    dependencies could be eliminated, but it also uses the following
  863.    procedures which aren't in standard Scheme: error, bkpt, macros,
  864.    dynamic binding, and string output ports. The code corresponds pretty
  865.    closely to Guy Steele's PhD thesis implementation, which you can
  866.    obtain in printed form from the MIT AI Lab publications office as
  867.    AI-TR-595 for $15.00 (email publications@ai.mit.edu for more
  868.    information). For more information, send email to Chris Hanson
  869.    <cph@martigny.ai.mit.edu>.
  870.  
  871.    JACAL is a symbolic mathematics system for the simplification and
  872.    manipulation of equations and single and multiple valued algebraic
  873.    expressions constructed of numbers, variables, radicals, and algebraic
  874.    functions, differential, and holonomic functions. In addition, vectors
  875.    and matrices of the above objects are included.  JACAL is written in
  876.    Scheme and requires SLIB. JACAL source is available via anonymous FTP
  877.    from
  878.       swiss-ftp.ai.mit.edu:/archive/scm/jacal1a4.tar.Z,
  879.       prep.ai.mit.edu:/pub/gnu/jacal/jacal1a4.tar.Z, and
  880.       ftp.cs.indiana.edu:/pub/scheme-repository/new/jacal1a4.tar.Z
  881.    Contact jaffer@altdorf.ai.mit.edu for more information.
  882.   
  883.    Zebu 0.9 is an LALR(1) parser generator for Scheme written by 
  884.    William M. Wells III. It lives in the Scheme Repository 
  885.       ftp.cs.indiana.edu:/pub/scheme-repository/scm/
  886.    and works with PC-Scheme from TI and MIT C-Scheme 6.2 (but not with
  887.    anything after 7.0). 
  888.  
  889.    Thomas is a compiler for the Dylan programming language.  The Thomas
  890.    system is written in Scheme and runs under MIT's CScheme, DEC's
  891.    Scheme->C, and Marc Feeley's Gambit.  It can run on a wide range of
  892.    machines including the Macintosh, PC compatibles, Vax, MIPS, Alpha,
  893.    and 680x0.  Thomas generates IEEE compatible Scheme code.  Thomas is
  894.    available to the public by anonymous ftp at
  895.       crl.dec.com:/pub/DEC/Thomas
  896.       gatekeeper.pa.dec.com:/pub/DEC/Thomas
  897.       swiss-ftp.ai.mit.edu:/archive/Thomas
  898.    For more information on Thomas and Dylan, see part 4 of the Lisp FAQ.
  899.  
  900.    MATCH is a pattern matching macro package for Scheme.  Pattern
  901.    matching allows complicated control decisions based on data structure
  902.    to be expressed in a concise manner. This document describes several
  903.    pattern matching macros for Scheme, and an associated mechanism for
  904.    defining new forms of structured data. This macro package works with
  905.    any Scheme that supports defmacro (which is obtainable by loading
  906.    SLIB), such as Chez Scheme (release 4 or greater). MATCH is available
  907.    by anonymous ftp from titan.cs.rice.edu:/public/wright/match.tar.Z
  908.    [128.42.1.30] and includes the macro source code and documentation. A
  909.    copy should be available from the Scheme Repository shortly.  For
  910.    further information, write to Andrew Wright, <wright@cs.rice.edu>.
  911.  
  912.    Soft Scheme provides the benefits of static typing for dynamically
  913.    typed Scheme.  Like a static type checker, a soft type checker infers
  914.    types for variables and expressions.  But rather than reject programs
  915.    containing untypable fragments, a soft type checker inserts explicit
  916.    run-time checks to transform untypable programs to typable form.
  917.    These run-time checks indicate potential program errors, enabling
  918.    programmers to detect errors prior to program execution.  Soft type
  919.    checking minimizes the number of run-time checks in the compiled code,
  920.    enabling dynamically typed languages to attain the efficiency of
  921.    statically typed languages like ML. Soft Scheme is available by
  922.    anonymous ftp from
  923.       titan.cs.rice.edu:public/wright/softscheme.tar.Z [128.42.1.30]
  924.    For more information, write to Andrew Wright <wright@cs.rice.edu>.
  925.  
  926.    ChezSybase is a Chez Scheme interface to the Sybase database.
  927.    It uses the Chez Scheme foreign function interface to provide a
  928.    high-level Scheme interface to the Sybase db-lib (the API to the
  929.    Sybase database). Most of the db-lib calls and datatypes are
  930.    supported, with the possible exception of spotty support for text and
  931.    image data, and there is no analog to the datetime datatype. It is
  932.    available by anonymous ftp from
  933.       ftp.cs.cmu.edu:/user/ai/lang/scheme/code/io/chez_syb/
  934.    For more information, write to Karl O. Pinc <kop@acm.org>.
  935.  
  936. ----------------------------------------------------------------
  937. Subject: [1-11] Formatting code in LaTeX
  938.  
  939. SLaTeX is a R4RS-compliant Scheme program that allows you to write
  940. program code "as is" in your LaTeX or TeX source.  It is particularly
  941. geared to the programming languages Scheme and Common Lisp, and has
  942. been tested in Chez Scheme, Common Lisp, MIT C Scheme, Elk, Scheme->C,
  943. SCM and UMB Scheme on Unix; and MIT C Scheme and SCM on MSDOS.  The
  944. formatting of the code includes assigning appropriate fonts to the
  945. various tokens in the code (keywords, variables, constants, data), at
  946. the same time retaining the proper indentation when going to the
  947. non-monospace (non-typewriter) provided by TeX.  SLaTeX comes with two
  948. databases that recognize the standard keywords/variables/constants of
  949. Scheme and Common Lisp respectively.  These can be modified by the
  950. user using easy TeX commands.  In addition, the user can inform SLaTeX
  951. to typeset arbitrary identifiers as specially suited TeX expressions
  952. (i.e., beyond just fonting them).  The code-typesetting program SLaTeX
  953. is available by anonymous ftp from 
  954.    cs.rice.edu:/public/dorai/slatex23.tar.gz
  955. Send bug reports to dorai@cs.rice.edu.
  956.  
  957. SchemeWEB provides simple support for literate programming in Lisp.
  958. SchemeWEB version 2.0 is a Unix filter that allows you to generate
  959. both Lisp and LaTeX code from one source file.  The generated LaTeX
  960. code formats Lisp programs in typewriter font obeying the spacing in
  961. the source file.  Comments can include arbitrary LaTeX commands.
  962. SchemeWEB was originally developed for the Scheme dialect of Lisp, but
  963. it can easily be used with most other dialects.  Version 2.0 is
  964. available in the Scheme Repository as
  965.    ftp.cs.indiana.edu:/pub/scheme-repository/new/schemeweb.sh
  966. or in the Comprehensive TeX Archive Network (CTAN) in the directory
  967.    ftp.shsu.edu:/tex-archive/web/schemeweb 
  968.  
  969. The Literate Programming FAQ lists a number of alternatives, both
  970. language-independent and Scheme-specific. The Literate Programming FAQ
  971. is posted once a quarter to the comp.literate.programming newsgroup
  972. and is available by anonymous ftp from rtfm.mit.edu. A copy may also be
  973. requested by sending an email message to fileserv@shsu.edu
  974.    sendme litprog.faq
  975. in the body of the message.
  976.  
  977. ----------------------------------------------------------------
  978. Subject: [1-12] Where can I get an implementation of Prolog in Scheme?
  979.  
  980.    Prolog in Scheme is a collection of macros that expand syntax for
  981.    clauses, elations, and so on. It is written in Scheme and has support
  982.    for delayed goals and interval arithmetic. It is known to run in Chez
  983.    Scheme and in Elk, and is intended to be portable to other Scheme
  984.    implementations. It relies on continuations, and so is not easily
  985.    ported to Common Lisp. Available from the University of Calgary by
  986.    anonymous ftp from
  987.       ftp.cpsc.ucalgary.ca:/pub/projects/prolog1.2/prolog12.tar.Z
  988.    Questions and comments may be addressed to Alan Dewar
  989.    <dewar@cpsc.ucalgary.ca> or John Cleary <jcleary@waikato.ac.nz>.
  990.  
  991.    Schelog is an embedding of Prolog in Scheme. It represents Prolog
  992.    goals as procedures in Scheme, and includes macros to simulate a
  993.    Prolog-style syntax for clauses, relations and queries.  The embedding
  994.    permits the user to combine Prolog and Scheme code freely, in the same
  995.    s-expression, if desired.  Documentation and examples are included.
  996.    Schelog should run in any R4RS Scheme, has been tested in SCM and Chez
  997.    Scheme, and will run in any Scheme implementation that supports SLIB (see
  998.    entry in [1-10] above).  Schelog (version 2) is available by anonymous
  999.    ftp from titan.cs.rice.edu:/public/dorai/schelog2.tar.Z.  Its use of
  1000.    higher-order continuations is probably a major obstacle to porting it
  1001.    to Common Lisp.  For more information, please contact the author Dorai
  1002.    Sitaram <dorai@cs.rice.edu>.
  1003.  
  1004. ----------------------------------------------------------------
  1005. Subject: [1-13]  What does SICP, SCOOPS, R4RS, CAR, CDR, ... mean?
  1006.  
  1007. Glossary of acronyms:
  1008.    CAR             Originally meant "Contents of Address portion of Register",
  1009.                    which is what CAR actually did on the IBM 704.
  1010.    CDR             Originally meant "Contents of Decrement portion of 
  1011.                    Register", which is what CDR actually did
  1012.                    on the IBM 704. Pronounced "Cudder".
  1013.    ANSI            American National Standards Institute
  1014.    SICP            Abelson and Sussman's book "Structure and
  1015.                    Interpretation of Computer Programs".
  1016.    EOPL            Essentials of Programming Languages 
  1017.    SCOOPS          An experimental object-oriented programming
  1018.                    language for Scheme.
  1019.    R3RS            Revised^3 Report on the Algorithmic Language Scheme.
  1020.    R4RS            Revised^4 Report on the Algorithmic Language Scheme.
  1021.  
  1022. ----------------------------------------------------------------
  1023. Subject: [1-14] Why is there no EVAL in Scheme?
  1024.  
  1025. The answer to this question is based on information provided by 
  1026. Guillermo J. Rozas and Aubrey Jaffer.
  1027.  
  1028. There are three major positions in the Scheme community regarding EVAL:
  1029.  
  1030.    1. No EVAL: EVAL is antithetical to a Pascal-like (compiler based,
  1031.       externally statically linked) implementation for Scheme, such as
  1032.       some people have or wish to see. 
  1033.  
  1034.    2. Single Argument: There is a single distinguished top-level
  1035.       environment, and EVAL always evaluates its argument there. 
  1036.       (This is the approach taken in Common Lisp, where EVAL evaluates
  1037.       its argument in the current dynamic environment and in a null
  1038.       lexical environment.) 
  1039.  
  1040.    3. Two Arguments: There are multiple environments in which
  1041.       the user might want to evaluate expressions, so EVAL should take
  1042.       two arguments, the second being an environment.  In particular,
  1043.       in some systems with first-class environments, there is no
  1044.       a-priori single distinguished top-level environment, and
  1045.       defaulting the environment does not fit those dialects well.
  1046.  
  1047. Not every dialect of Scheme has EVAL. Most do, but some with different
  1048. names and arguments. Jaffer's SLIB package uses LOAD as defined in
  1049. R4RS to define EVAL for those implementations that don't support EVAL
  1050. (e.g., by writing the code out to a file and then loading it).
  1051. Rozas's compromise proposal for EVAL was accepted for R5RS, but it is
  1052. unclear whether there will ever be a R5RS.
  1053.  
  1054. ----------------------------------------------------------------
  1055. Subject: [1-15] World-Wide Web (WWW) Resources
  1056.  
  1057. The World Wide Web (WWW) is a hypermedia document that spans the
  1058. Internet.  It uses the http (HyperText Transfer Protocol) for the
  1059. light-weight exchange of files over the Internet.  NCSA Mosaic is a
  1060. World Wide Web browser developed at the National Center for
  1061. Supercomputing Applications (NCSA). 
  1062.  
  1063. Mosaic's popularity derives, in part, from its ability to communicate
  1064. using more traditional Internet protocols like FTP, Gopher, WAIS, and
  1065. NNTP, in addition to http. Mosaic can display text, hypertext links,
  1066. and inlined graphics directly. When Mosaic encounters a file type it
  1067. can't handle internally, such as Postscript documents, mpeg movies,
  1068. sound files, and JPEG images, it uses an external viewer (or player)
  1069. like Ghostscript to handle the file. Mosaic also includes facilities
  1070. for exploring the Internet. In other words, Mosaic is an multimedia
  1071. interface to the Internet.
  1072.  
  1073. The hypertext documents viewed with Mosaic are written in HTML
  1074. (HyperText Markup Language), which is a subset of SGML (Standard
  1075. Generalized Markup Language).  All that is needed is just a few more
  1076. improvements, such as the ability to format tables and mathematics,
  1077. and a WYSIWYG editor, for HTML to greatly facilitate electronic
  1078. journals and other publications.
  1079.  
  1080. NCSA Mosaic for the X Window System is available by anonymous ftp from  
  1081.    ftp.ncsa.uiuc.edu:/Mosaic/
  1082. as source code and binaries for Sun, SGI, IBM RS/6000, DEC Alpha OSF/1, DEC
  1083. Ultrix, and HP-UX. Questions about NCSA Mosaic should be directed to 
  1084. mosaic-x@ncsa.uiuc.edu (X-Windows version), mosaic-mac@ncsa.uiuc.edu
  1085. (Macintosh), and mosaic-win@ncsa.uiuc.edu (Microsoft Windows).
  1086.  
  1087. A simple HTML version of the Scheme FAQ (this FAQ) is available as
  1088.    http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/scheme/top.html
  1089.  
  1090. The Scheme home page at MIT is
  1091.     http://www-swiss.ai.mit.edu/scheme-home.html
  1092. It includes a nifty little form that lets you execute small examples
  1093. of Scheme code.
  1094.  
  1095. The Scheme Underground web page is
  1096.     http://www.ai.mit.edu/projects/su/su.html
  1097.  
  1098. ----------------------------------------------------------------
  1099. Subject: [1-16] Why is Scheme called 'Scheme'?
  1100.  
  1101. According to Steele and Gabriel's "The Evolution of Lisp" paper,
  1102. Scheme was originally called Schemer, in the tradition of the AI
  1103. languages Planner and Conniver. But the ITS operating system had a
  1104. 6-character limitation of file names, so the names were shortened to
  1105. PLNR, CNVR, and SCHEME. Eventually the truncated name Scheme stuck.
  1106.  
  1107. ----------------------------------------------------------------
  1108. ;;; *EOF*
  1109.  
  1110. Archive-name: scheme-faq/part2
  1111. Last-Modified: Mon Jan 16 20:06:10 1995 by Mark Kantrowitz
  1112. Version: 1.22
  1113. Maintainer: Mark Kantrowitz and Barry Margolin <ai+lisp-faq@cs.cmu.edu>
  1114. URL: http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/scheme/top.html
  1115. Size: 42598 bytes, 750 lines
  1116.  
  1117. ;;; ****************************************************************
  1118. ;;; Answers to Frequently Asked Questions about Scheme *************
  1119. ;;; ****************************************************************
  1120. ;;; Written by Mark Kantrowitz and Barry Margolin
  1121. ;;; scheme_2.faq
  1122.  
  1123. This post contains part 2 of the Scheme FAQ.
  1124.  
  1125. If you think of questions that are appropriate for this FAQ, or would
  1126. like to improve an answer, please send email to us at ai+lisp-faq@cs.cmu.edu.
  1127.  
  1128. Topics Covered (Part 2):
  1129.   [2-1]   Free Scheme implementations.
  1130.   [2-2]   Commercial Scheme implementations.
  1131.   [2-3]   What Scheme-related discussion groups and mailing lists exist?
  1132.  
  1133. Search for \[#\] to get to question number # quickly.
  1134.  
  1135. ----------------------------------------------------------------
  1136. Subject: [2-1] Free Scheme implementations.
  1137.  
  1138. Repositories of Scheme source code are described in the answer to
  1139. question [1-9].
  1140.  
  1141. Remember, when ftping compressed or compacted files (.Z, .z, .arc, .fit,
  1142. etc.) to use binary mode for retrieving the files. 
  1143.  
  1144. Files that end with a .z suffix were compressed with the patent-free
  1145. gzip (no relation to zip). Source for gzip is available from:
  1146.    prep.ai.mit.edu:/pub/gnu/
  1147. as the files gzip-1.2.3.shar, gzip-1.2.3.tar,or gzip-1.2.3.msdos.exe.
  1148.  
  1149. Repositories of Scheme implementations:
  1150.  
  1151.    Many free Scheme implementations are available from swiss-ftp.ai.mit.edu
  1152.    [18.43.0.246]. See also the Scheme Repository described below.
  1153.  
  1154.    The Scheme Repository contains a Scheme bibliography, copies of the
  1155.    R4RS report, sample Scheme code for a variety of purposes, several
  1156.    utilities, and most free implementations.  (Implementations of Scheme
  1157.    available from the repository include elk, gambit, scm, fools, rabbit,
  1158.    s48, scheme84, scheme88, pseudo, xscheme, umb-scheme, siod, vscm, and
  1159.    pixiescheme.) The repository was established by Ozan S. Yigit and
  1160.    is currently maintained by David Eby and John Zuckerman
  1161.    <scheme-repository-request@cs.indiana.edu>. The repository is
  1162.    accessible by anonymous ftp at 
  1163.       ftp.cs.indiana.edu:/pub/scheme-repository/   [129.79.254.191]
  1164.    The repository is mirrored in INRIA, courtesy of Christian Queinnec
  1165.    [Ecole Polytechnique and INRIA-Rocquencourt], ftp.inria.fr:/lang/Scheme.
  1166.    (See also [1-9].)
  1167.  
  1168. Scheme implementations:
  1169.  
  1170.    BIGLOO is a Scheme interpreter and compiler. It conforms to the
  1171.    IEEE-Scheme standard (IEEE P1178) with some extensions, such as
  1172.    regular expression parsing (RGC), a lexical analyzer generator, a full
  1173.    foreign function interface, and a pattern matching compiler.  Bigloo
  1174.    can also compile modules written in Caml (an ML dialect), letting you
  1175.    mix Scheme, ML, and C.  Object-oriented programming is provided by
  1176.    Meroon v3. The main goal of Bigloo is to deliver small and fast stand
  1177.    alone applications.  Bigloo produces ANSI C and hence should be easy
  1178.    to port. It runs on Sparc (1, 2, 10), SONY-NEWS (MIPS R3000), IRIS
  1179.    Indigo (MIPS R3000), Sun 3/60, DecStation 3100, PC-486 (linux), and
  1180.    HP-PA (730).  It is available by anonymous ftp from
  1181.       ftp.inria.fr:/INRIA/Projects/icsla/Implementations/ [192.93.2.54]
  1182.    as the files bigloo1.6.tar.gz and camloo0.0.tar.gz.
  1183.    For further information, send email to Manuel.Serrano@inria.fr, or
  1184.    write to Manuel Serrano (equipe ICSLA, Bat 8), INRIA-Rocquencourt, 
  1185.    BP 105, 78153, Le Chesnay CEDEX, FRANCE, or call 39-63-57-32.
  1186.  
  1187.    Elk (Extension Language Kit) is a Scheme interpreter designed to be
  1188.    used as a general extension language for applications written in C or
  1189.    C++. Elk can also be used as a stand-alone implementation of the
  1190.    Scheme programming language. It is mostly R4RS and P1178 conformant
  1191.    (with the exception of the number system and a few minor details).  It
  1192.    has interfaces to Xlib, Xt, and the Athena and OSF/Motif widget sets.
  1193.    It includes dynamic incremental linking of C object files, an optional
  1194.    foreign function interface, and a generational garbage collector (by
  1195.    Marco Scheibe <mykee@cs.tu-berlin.de>). It can also dump an image of a
  1196.    fully customized application into a new executable file. Elk is
  1197.    available by anonymous ftp from 
  1198.       tub.cs.tu-berlin.de:/pub/elk/
  1199.    It is also available from the Scheme Repository in
  1200.       ftp.cs.indiana.edu:/pub/scheme-repository/imp/
  1201.    and in the X contrib directory on ftp.x.org (formerly export.lcs.mit.edu).
  1202.    Runs on Unix, SunOs, and Ultrix based platforms, including VAX,
  1203.    Sun3, Sun4 (Sparc), 680x0, 80386, MIPS, IBM RT, IBM RS/6000,
  1204.    HP9000/700, SGI, and Sony NEWS. Implemented by Oliver Laumann
  1205.    <net@cs.tu-berlin.de> and Carsten Bormann <cabo@cs.tu-berlin.de>.
  1206.  
  1207.    FDU Scheme is a R3RS implementation of Scheme for the Prime
  1208.    50-series under Primos. It is available by anonymous ftp from
  1209.    fdumad.fdu.edu [132.238.1.1] (username "anonymous", password
  1210.    <RETURN>). Attach to the Scheme subdirectory (cd '*>scheme') and
  1211.    transfer all files in it and its subdirectories using file type
  1212.    binary.  For more information, contact Peter Falley,
  1213.    <falley@fdumad.fdu.edu>.
  1214.  
  1215.    Fools' Lisp is a small Scheme interpreter that is R4RS conformant, and
  1216.    is available by anonymous ftp from
  1217.       scam.berkeley.edu:/pub/src/local/fools.1.3.2.tar.Z [128.32.138.1] 
  1218.    Fools' Lisp runs on Sun3 and Sun4 (SunOs), DecStation 3100s, Vax
  1219.    (Ultrix), Sequent, and Apollo. Implemented by Jonathan Lee
  1220.    <jonathan@scam.berkeley.edu>. 
  1221.  
  1222.    Gambit is an optimizing Scheme compiler/system. It conforms to the
  1223.    IEEE-Scheme standard (IEEE P1178) and the Revised^4 Report on Scheme
  1224.    (R4RS). The system supports the whole numeric tower (i.e. integer,
  1225.    rational, real and complex numbers). It also has several extensions to
  1226.    the standards including: weak pairs, string ports, property lists,
  1227.    futures, pretty printer, debugger, compiler and multitasking. Gambit
  1228.    runs on M680x0 based machines only (including Sun3, Apollo,
  1229.    HP9000/3xx, BBN GP1000 multiprocessor, Amiga, NeXT, and the Apple
  1230.    Macintosh). The latest version for UNIX based machines (including the
  1231.    Macintosh running A/UX) is release 1.9. The latest version for the Mac
  1232.    running the normal System/Finder is MacGambit release 1.9.1. The
  1233.    distribution contains the interpreter and optimizing native code
  1234.    compiler and all the sources required to build the system (the sources
  1235.    for MacGambit are for THINK-C 5.0). MacGambit's specific features
  1236.    include: a Scheme interface to several Toolbox routines (mostly
  1237.    QuickDraw), a drawing window for simple graphics, an online help
  1238.    system containing R4RS and a Scheme oriented editor with an emacs
  1239.    compatibility mode. Gambit Scheme is available by anonymous ftp from
  1240.       ftp.iro.umontreal.ca:/pub/parallele/gambit/ [132.204.32.22]
  1241.    Versions 1.7, 1.7.1, 1.8.2, 1.9.1 and 2.0 may be found in this
  1242.    directory. Version 2.0 is in the files gambit20.tar.Z (Unix source),
  1243.    macgambit-2.0-interpreter.hqx (MacGambit interpreter),
  1244.    macgambit-2.0-sources1.hqx (sources needed to build the interpreter
  1245.    using Think-C 5.0), and macgambit-2.0-sources2.hqx (Scheme source
  1246.    files for runtime and compiler, and DEC's Thomas interpreter).
  1247.    Copies may also be found in the Scheme Repository on
  1248.    ftp.cs.indiana.edu:/pub/scheme-repository/imp/, but the most recent version
  1249.    will always be available from ftp.iro.umontreal.ca. MacGambit may also be
  1250.    obtained from the directory
  1251.         /afs/umich.edu/group/itd/archive/mac/development/languages/
  1252.    if your site runs the Andrew File System, or by anonymous ftp from
  1253.    mac.archive.umich.edu. For more information about Gambit, send email
  1254.    to gambit@trex.iro.umontreal.ca. Gambit Scheme was written by Marc
  1255.    Feeley <feeley@iro.umontreal.ca>. Gambit for UNIX and MacGambit are
  1256.    copyright 1992, Universite de Montreal. The programs may be
  1257.    distributed to others as long as they are not sold or transferred for
  1258.    compensation (other than a reasonable duplication fee).
  1259.  
  1260.    HELP (a lazy Scheme) is available by anonymous ftp from
  1261.    sumex-aim.stanford.edu:/info-mac/lang/lazy-scheme.hqx.  Written by
  1262.    Thomas Schiex (schiex@cert.fr, schiex@irit.fr). Help is a complete and
  1263.    efficient Scheme-like functional lazy Lisp interpreter.  It works only
  1264.    on 68020 (or more) based Macintoshes. It has a 'friendly' interface
  1265.    (parenthesis matcher, auto-indent), uses a full call-by-need semantics
  1266.    and includes many examples, including a symbolic compiler for the
  1267.    680x0. Efficiency is good and lazyness is fully parametrizable (you
  1268.    may turn Help into a strict Scheme-like language if you like). French
  1269.    AND English updated docs are included in Word4 and plain text formats.
  1270.  
  1271.    LIBSCHEME is a C library implementing Scheme as described in R4RS.  It
  1272.    is easily integrated into a C program as a command interpreter or
  1273.    extension language, and is easily extended in C with new primitive
  1274.    types, primitve functions and syntax.  It should be portable to most
  1275.    machines with an ANSI C compiler. It is available by anonymous ftp
  1276.    from 
  1277.       ftp.cs.indiana.edu:/pub/scheme-repository/imp/
  1278.    For more information, write to Brent Benson
  1279.    <Brent.Benson@mail.csd.harris.com>.
  1280.  
  1281.    MIT Scheme (aka C-Scheme), is available free by anonymous FTP from
  1282.       swiss-ftp.ai.mit.edu:/archive/scheme-7.3 [18.23.0.16]
  1283.    Version 7.3 is a beta version and runs on DEC Alpha, DECStation
  1284.    (MIPS), HP 9000 300/400/700, IBM RS-6000, Intel i386/i486 (DOS, NT,
  1285.    Windows 3.1, or Linux), NeXT (NeXTOS 2 or 3), SGI (MIPS), Sony NEWS
  1286.    (MIPS), Sun3 (SunOS 4.1) and Sun4 (SunOS 4.1).  Bugs should be
  1287.    reported to bug-cscheme@martigny.ai.mit.edu (for the DOS version, send
  1288.    bug reports to bug-cscheme-dos@martigny.ai.mit.edu).  MIT Scheme
  1289.    includes Edwin (Scheme's Emacs-like editor) and Liar (the Scheme
  1290.    compiler). Does not have a convenient foreign function interface yet.
  1291.    FTP distribution includes MIT C-Scheme Reference and User manuals, as
  1292.    well as the Revised^4 Report on Scheme. Discussion occurs on the
  1293.    newsgroup comp.lang.scheme.c (gatewayed to the mailing list
  1294.    info-cscheme@zurich.ai.mit.edu). For DOS floppy distribution requests
  1295.    (includes printed copies of manuals), send $95.00 (payable in U.S.
  1296.    funds to "Scheme Distribution") to cover costs of distribution to
  1297.    Scheme Distribution, c/o Prof. Hal Abelson, 545 Technology Sq. rm 410,
  1298.    Cambridge MA 02139, USA.
  1299.    |
  1300.    On the NeXT, MIT Scheme is available as part of the Schematik
  1301.    package, which provides an editor/front-end user interface,
  1302.    graphics, and "robotics" support for Lego and the like.  Schematik is
  1303.    free and is available for anonymous ftp from 
  1304.       ftp.gac.edu:/pub/next/scheme/
  1305.    Europeans can get it more locally from
  1306.       ftp.informatik.uni-muenchen.de:/pub/next/ProgLang/
  1307.    start with Schematik-1.1.5.1.README .  Schematik is also apparently
  1308.    included on NeXT's "Educational Software Sampler" CD-ROM.
  1309.    |
  1310.    A preliminary unofficial port of C-Scheme to the Linux is available 
  1311.    from artemide.dei.unipd.it:/linux/scheme-7.2/. Contact the author
  1312.    Matteo Frigo <Matteo.Frigo@dei.unipd.it> for more information. 
  1313.  
  1314.    Oaklisp is an seamless integration of Scheme with an object-oriented
  1315.    substrate. Available by anonymous ftp from 
  1316.       f.gp.cs.cmu.edu:/usr/bap/oak/ftpable/ [128.2.250.164]
  1317.    or from
  1318.       ftp.cs.cmu.edu:/afs/cs.cmu.edu/user/bap/oak/ftpable/
  1319.    and includes reference and implementation manuals. Written by Barak
  1320.    Pearlmutter <bap@cse.ogi.edu> and Kevin Lang <kevin@research.nj.nec.com>.
  1321.  
  1322.    PC-Scheme (aka PCScheme, PC Scheme) is an implementation of Scheme
  1323.    originally written by Texas Instruments. TI made a version of the
  1324.    source code freely distributable in 1987. TI stopped supporting
  1325.    the code, and some researchers at the University of Geneva produced
  1326.    a cleaned-up version (see PCS/Geneva below). On July 13, 1992, Ibuki
  1327.    announced that it had purchased the rights to PC Scheme from TI.
  1328.    Please see the Ibuki PC Scheme entry in [2-2]. If you want a
  1329.    high-quality and supported implementation of PC Scheme, buy the
  1330.    Ibuki implementation. It is certainly inexpensive enough. Now TI
  1331.    PC-Scheme is available by anonymous ftp from 
  1332.       swiss-ftp.ai.mit.edu:/archive/pc-scheme/
  1333.    and runs on MS-DOS 286/386 IBM PCs and compatibles. Version 3.3 
  1334.    should run on the 486, but no guarantees. Version 3.3 is the last
  1335.    free version. TI PC-Scheme conforms to the Revised^3 Report on Scheme.
  1336.    It includes an optimizing compiler, an emacs-like editor, inspector,
  1337.    debugger, performance testing, foreign function interface, window
  1338.    system and an object-oriented subsystem. It also supports the dialect
  1339.    used in Abelson and Sussman's SICP.
  1340.  
  1341.    PCS/Geneva is a cleaned-up version of Texas Instrument's PC Scheme
  1342.    developed at the University of Geneva. The main extensions to PC
  1343.    Scheme are 486 support, BGI graphics, LIM-EMS pagination support, line
  1344.    editing, mouse support, assembly-level interfacing, and several
  1345.    powerful Scheme-oriented editors. (TI's PC Scheme gives users full
  1346.    Revised^3 support along with many primitives for DOS, Graphics and
  1347.    Text Windows. A powerful built-in optimizing compiler produces fast
  1348.    code.) PCS/Geneva 4.02PL1 has been tested on XTs, ATs, AT386s and
  1349.    AT486s under various DOS and OS/2 versions. It even runs on
  1350.    Hewlett-Packard's HP95LX. It also runs on Suns with a DOS emulator.
  1351.    PCS/Geneva is available free by anonymous ftp from
  1352.       cui.unige.ch:/PUBLIC/pcs/ [129.194.70.1]
  1353.    as the files pcscheme.doc, pcscheme.exe, pcscheme.fil and pcscheme.taz
  1354.    or by email (uuencoded) from schemege@cui.unige.ch. If you ftp
  1355.    PCS/Geneva, please send mail to schemege@cui.unige.ch; the authors
  1356.    like to know their public and will inform you when a new release is
  1357.    available. This is also the email address for bug reports or if you
  1358.    need any kind of help. This product may be distributed freely and
  1359.    used without restrictions except for military purposes.
  1360.    (PCS/Geneva was developed by Larry Bartholdi <lbartho@cui.unige.ch>
  1361.    and Marc Vuilleumier <mvuilleu@cui.unige.ch>.)
  1362.  
  1363.    Pixie Scheme for the Macintosh is a nearly complete implementation of
  1364.    R3RS available by anonymous ftp from
  1365.    rascal.ics.utexas.edu:/misc/mac/programming/ 
  1366.      Pixie.Goodies.SIT.bin
  1367.      Pixie.NoFPP.world.SIT.bin
  1368.      Pixie.world.SIT.bin
  1369.      PixieScheme.NoFPP.SIT.bin  ; for macs without floating-point coprocessor
  1370.      PixieScheme.SIT.bin        ; for macs with FPP
  1371.      Pixie_Scheme_Help.SIT.bin
  1372.      Pixie_intro
  1373.    Written by Jay Reynolds Freeman <freeman@MasPar.COM>, P. O. Box 60628,
  1374.    Palo Alto, CA, 94306-0628. A copy may also be obtained from
  1375.      /afs/umich.edu/group/itd/archive/mac/development/languages 
  1376.    as the file pixiescheme.cpt.hqx if your site runs the Andrew File System,
  1377.    or by anonymous ftp from mac.archive.umich.edu.
  1378.  
  1379.    Scheme->C is an R4RS compliant Scheme system that is centered around
  1380.    a compiler that compiles Scheme to C.  Besides the base language,
  1381.    the system includes "expansion passing style" macros, a foreign function
  1382.    call capability, records, weak pointers, 3 X11 interfaces, call/cc, and a
  1383.    generational, conservative, copying garbage collector. The result is a
  1384.    system that is portable, efficient, and able to build applications that
  1385.    contain a mix of compiled and interpreted Scheme, and compiled code
  1386.    from C, C++ and other languages.  The current release of Scheme->C runs
  1387.    on the following systems: Digital Alpha AXP systems with OSF/1, MIPS
  1388.    based DECstations, VAXen with ULTRIX, MIPS based SGI systems, PC's 
  1389.    running Microsoft Windows 3.1, Apple Macintosh's running system 7.1,
  1390.    HP 9000/300, HP 9000/700, Sony News, Harris Nighthawk and other m88k
  1391.    systems, linux, and Sun SPARC.  Earlier releases also run on Sun3,
  1392.    DNx500, DN1000, 386's running Unix, DNx500, and DN1000 systems.  The
  1393.    software is available for anonymous ftp from 
  1394.       gatekeeper.dec.com:/pub/DEC/Scheme-to-C/ [16.1.0.2]
  1395.    There are three interfaces to X11, all written in Scheme, available
  1396.    from gatekeeper. The first is a complete set of stubs to Xlib included
  1397.    in the base system.  The second is an alternative to Xlib called SCIX,
  1398.    found in 
  1399.       gatekeeper.dec.com:/pub/X11/contrib/
  1400.    The third, ezd, allows programs to easily
  1401.    produce interactive, structured graphics and is found in 
  1402.       gatekeeper.dec.com:/pub/DEC/ezd/
  1403.    Those without ftp access can also obtain Scheme->C and ezd from the
  1404.    Prime Time Freeware CD, Vol. 1, No. 2.  Additional information is
  1405.    available from the author at Digital Equipment Corporation's Western
  1406.    Research Lab: Joel Bartlett, bartlett@decwrl.dec.com.
  1407.  
  1408.    Scheme 48 is a Scheme implementation based on a virtual machine
  1409.    architecture. Scheme 48 is designed to be straightforward, flexible,
  1410.    reliable, and fast. It should be easily portable to 32-bit
  1411.    byte-addressed machines that have POSIX and ANSI C support.
  1412.    In addition to the usual Scheme built-in procedures and a development
  1413.    environment, library software includes support for hygienic macros (as
  1414.    described in the Revised^4 Scheme report), multitasking, records,
  1415.    exception handling, hash tables, arrays, weak pointers, and FORMAT.
  1416.    Scheme 48 implements and exploits an experimental module system
  1417.    loosely derived from Standard ML and Scheme Xerox.  The development
  1418.    environment supports interactive changes to modules and interfaces.
  1419.    A beta release of Scheme 48 is available by anonymous ftp from
  1420.       ftp.cs.indiana.edu:/pub/scheme-repository/imp/scheme48-0.36.tar.Z
  1421.       swiss-ftp.ai.mit.edu:/archive/s48/scheme48-0.36.tar.gz
  1422.       ftp.cs.cmu.edu:/user/ai/lang/scheme/impl/s48/scheme48.tar.gz
  1423.    For more information, contact Richard Kelsey and Jonathan Rees
  1424.    at <scheme-48-request@martigny.ai.mit.edu>.
  1425.  
  1426.    SCM, free by anonymous ftp from 
  1427.       swiss-ftp.ai.mit.edu:/archive/scm/
  1428.       prep.ai.mit.edu:/pub/gnu/jacal/
  1429.       ftp.cs.indiana.edu:/pub/scheme-repository/new/
  1430.       ftp.maths.tcd.ie:/pub/bosullvn/jacal/
  1431.    Current version 4e1. Runs on Amiga, Atari-ST, MacOS, MS-DOS, OS/2,
  1432.    NOS/VE, VMS, Unix and similar systems. SCM conforms to the Revised^4
  1433.    Report on the Algorithmic Language Scheme and the IEEE P1178
  1434.    specification. Scm is written in C.  ASCII and EBCDIC are supported.
  1435.    Written by Aubrey Jaffer.
  1436.       To receive an IBM PC floppy disk with the source files and MSDOS
  1437.    and i386 executables send $99 to Aubrey Jaffer, 84 Pleasant Street,
  1438.    Wakefield MA 01880, <jaffer@zurich.ai.mit.edu>. 
  1439.       SLIB (Standard Scheme Library) is a portable Scheme library
  1440.    which is intended to provide compatability and utility functions for
  1441.    all standard Scheme implementations, including SCM, Chez, Elk,
  1442.    Gambit, MacScheme, MITScheme, scheme->C, Scheme48, T3.1, and VSCM, and is
  1443.    available as the file slib2a0.tar.gz. Written by Aubrey Jaffer.
  1444.       JACAL is a symbolic math system written in Scheme, and is
  1445.    available as the file jacal1a4.tar.gz. 
  1446.       SCMCONFIG contains additional files for the SCM distribution to build
  1447.    SCM on Unix machines using GNU autoconf.
  1448.       SLIB-PSD is a portable debugger for Scheme (requires emacs editor).
  1449.       TURTLSCM is a turtle graphics package which works with SCM on MSDOS
  1450.    or X11 machines. Written by Mkinen Sami <sjm@cc.tut.fi> and Jarkko
  1451.    Leppanen <jtl@cc.tut.fi>, it is available as the file turtlegr.tar.Z.
  1452.    (Also available from modeemi.cs.tut.fi:/pub/scm/ as turtlegr.tar.gz,
  1453.    along with an already-compiled MSDOS binary of scm with turtlegraphics
  1454.    and slib in scm4c0_b.zip.)
  1455.       XSCM is an X Windows interface to Xlib and the Motif and
  1456.    OpenLook toolkits for the SCM interpreter. It requires scm4a10 or
  1457.    later. It should be available at any archive of alt.sources, or on
  1458.    swiss-ftp, prep and indiana as the file xscm1.05.tar.Z.
  1459.    Contact campbell@redsox.bsw.com for more information.
  1460.       SMG-SCM is a package that adds VMS SMG screen management routines
  1461.    to SCM. It is available from swiss-ftp, prep and indiana as the file
  1462.    sgm-scm2a1.zip. (A VMS version of Unzip is available by anonymous
  1463.    FTP from ftp.spc.edu:[ANONYMOUS.MACRO32]UNZIP.EXE.) This file
  1464.    contains the source code, documentation, and example code. Send
  1465.    comments and bugs to T. Kurt Bond, <tkb@mtnet2.wvnet.edu> (preferred)
  1466.    or <Kurt.Bond@launchpad.unc.edu>.
  1467.       WB is a disk based, sorted associative array C library (database). These
  1468.    associative arrays consist of variable length (less that 256 bytes)
  1469.    keys and values.  WB comes with an interface to SCM. Basic
  1470.    operations are creation, destruction, opening and closing of 
  1471.    diskfiles and arrays, insertion, deletion, retrieval, successor, and
  1472.    predecessor (with respect to dictionary order of keys).  Functional
  1473.    application of find-next, deletion, and modification over a range of
  1474.    consecutive key values is supported. Multiple associative arrays
  1475.    can be stored in one disk file. Simultaneous access to multiple
  1476.    disk files is supported.  A structure checker, garbage collector
  1477.    are included.  A repair program and ram-disk type file (for
  1478.    temporary structures) are in developement. The current WB
  1479.    implementation has a file size limit of 2^32 * block size (default
  1480.    2048) = 2^43 bytes (8796 Gbytes). WB does its own memory and disk
  1481.    management. WB is available on swiss-ftp, prep, and indiana as wb1a1.tar.z.
  1482.  
  1483.       A Windows version of Scheme called WinScm is forthcoming from
  1484.    Vincent Manis of Langara College of BC, Canada. 
  1485.  
  1486.       Hobbit is a Scheme-to-C compiler that works with the SCM Scheme
  1487.    interpreter. It treats SCM as a C library and integrates compiled
  1488.    functions into SCM as new primitives. Hobbit release 2 works with SCM
  1489.    release 4b4. Future releases of SCM and Hobbit will be coordinated.
  1490.    Hobbit imposes strong restrictions on the higher-order features of
  1491.    Scheme. For example, it does not support continuations.  The main aim
  1492.    of hobbit is to produce maximally fast C programs which would retain
  1493.    most of the original Scheme program structure, making the output C
  1494.    program readable and modifiable. Hobbit is written in Scheme and is
  1495.    able to self-compile. Hobbit can be obtained via anonymous ftp from
  1496.       swiss-ftp.ai.mit.edu:/archive/scm/hobbit2.tar.Z
  1497.       prep.ai.mit.edu:/pub/gnu/jacal/hobbit2.tar.Z
  1498.       ftp.cs.indiana.edu:/pub/scheme-repository/new/hobbit2.tar.Z
  1499.    For further information, contact the author, Tanel Tammet, at
  1500.    <tammet@cs.chalmers.se> or at Tanel Tammet, Department of Computer
  1501.    Sciences, Chalmers University of Technology, S-41296 Go"teborg, Sweden.
  1502.  
  1503.    Similix is a Self-Applicable Partial Evaluator for a Subset of Scheme.
  1504.    Written by Anders Bondorf, Olivier Danvy, and Jesper J{\o}rgensen. It
  1505.    is available by anonymous ftp from 
  1506.       ftp.cs.indiana.edu:/pub/scheme-repository/imp/ 
  1507.    as similix.tar.Z or from ftp.diku.dk:/pub/diku/dists/Similix.tar.Z. For 
  1508.    more information, contact Anders Bondorf, DIKU, Department of Computer
  1509.    Science, University of Copenhagen, Universitetsparken 1, DK-2100
  1510.    Copenhagen, Denmark, or send email to anders@diku.dk. Similix conforms
  1511.    to the IEEE and R4RS standards, but also runs under R3RS Scheme. It
  1512.    runs in SCM, Chez Scheme and T3.1.
  1513.  
  1514.    SIOD (Scheme in One Defun), free by anonymous ftp from 
  1515.         ftp.cs.indiana.edu:/pub/scheme-repository/imp/siod-v3.0-shar
  1516.         ftp.std.com:/pub/gjc/siod-3.0-shar
  1517.    or in any comp.sources.unix archive.  Runs on VAX/VMS, VAX UNIX, Sun3,
  1518.    Sun4, Amiga, Macintosh, MIPS, Cray, Windows NT/WIN32.  Small scheme
  1519.    implementation in C arranged as a set of subroutines that can be
  1520.    called from any main program for the purpose of introducing an
  1521.    interpreted extension language.  Compiles to ~42K bytes of
  1522.    executable.  Lisp calls C and C calls Lisp transparently. Version
  1523.    3.0 includes support for manipulation of Oracle and Digital RDB
  1524.    relational databases (SQL interface). 
  1525.    Written by George Carrette <gjc@paradigm.com> or <gjc@world.std.com>.
  1526.  
  1527.    STk is a R4RS Scheme interpreter which can access the Tk graphical
  1528.    package. All of the commands defined by the Tk toolkit are available
  1529.    to the STk interpreter, and Tk variables are reflected back into
  1530.    Scheme as Scheme variables. Callback is expressed in Scheme. Includes
  1531.    a CLOS-like OO extension called STklos, which provides multiple
  1532.    inheritance, generic functions, multi methods, and a true meta-object
  1533.    protocol.  A set of classes have been defined to manipulate Tk
  1534.    commands (menu, buttons, scales, canvas, canvas items) as Scheme
  1535.    objects. STk runs on Sparc (SUNOS 4.1.x), Dec 5xxx (Ultrix 4.2), SGI
  1536.    (Irix 4.05, 5.1.1), DEC Alpha, and Linux 1.0. STk is available by
  1537.    anonymous ftp from
  1538.       kaolin.unice.fr:/pub/STk-2.1.tar.gz [193.48.229.225]
  1539.    Please send bug reports, comments, and questions to Erick Gallesio,
  1540.    <eg@unice.fr>, Universite de Nice - Sophia Antipolis, ESSI - I3S
  1541.    Route des colles, BP 145, 06903 Sophia Antipolis CEDEX, FRANCE,
  1542.    phone (33) 92-96-51-53, fax (33) 92-96-51-55.
  1543.    To subscribe to the mailing list, send a message with 
  1544.       subscribe
  1545.    in the Subject field to stk-request@kaolin.unice.fr.
  1546.  
  1547.    T3.1 is a Scheme-like language developed at Yale. Available by
  1548.    anonymous ftp from 
  1549.        ftp.ai.mit.edu:/pub/systems/t3.1/
  1550.    T may be obtained in Europe from 
  1551.        nic.funet.fi:/pub/unix/languages/scheme/t3.1/
  1552.        ftp.diku.dk:/pub/t3.1/
  1553.    Runs on DecStations (MIPS processor) and SGI Iris, Sun4
  1554.    (SPARC), Sun3, Vax/Unix. Includes a copy of the online version of the
  1555.    T manual and release notes for T3.0 and T3.1. All implementations
  1556.    include a foreign function (C) interface. To be informed of fixes, new
  1557.    releases, etc., send your email address to t-project@cs.yale.edu. Bug
  1558.    reports should go to t3-bugs@cs.yale.edu. A multiprocessing version of
  1559.    T (for Encore Multimax) is available from masala.lcs.mit.edu:/pub/mult.
  1560.    [The sources were last modified November 22, 1991.]
  1561.  
  1562.    UMB Scheme is a R4RS Scheme available by anonymous ftp from
  1563.    ftp.cs.umb.edu:/pub/scheme/umb-scheme-2.10.tar.Z and also in the Scheme
  1564.    Repository. It includes a simple editor, debugger, Written by William
  1565.    Campbell, University of Massachusetts at Boston, bill@cs.umb.edu.
  1566.  
  1567.    VSCM is a R4RS Scheme available by anonymous ftp from the Scheme Repository,
  1568.      ftp.cs.indiana.edu:/pub/scheme-repository/imp/vscmV0r2.tar.Z [130.63.9.66]
  1569.    Written by Matthias Blume, <blume@cs.princeton.edu>. The
  1570.    implementation is based on a virtual machine design with heavy support
  1571.    for most of the sophisticated features of Scheme. The virtual machine
  1572.    is written in ANSI-C to aid in its portability. The bytecode compiler
  1573.    is written in Scheme itself. Documentation of VSCM is also available as
  1574.       http://www.cs.princeton.edu/grad/Matthias_Blume/vscm.html
  1575.  
  1576.    XScheme is available free by anonymous ftp from 
  1577.       ftp.uu.net:/MSDOS/languages/X-scheme
  1578.       ftp.uu.net:/amiga-sources/xscheme.20.zoo
  1579.    It includes an object system and is R3RS compliant.
  1580.    It was written by David Michael Betz, 167 Villa Avenue #11, Los Gatos,
  1581.    CA 95032, 408-354-9303 (H), 408-862-6325 (W), dbetz@apple.com.
  1582.    XScheme is discussed in the newsgroup comp.lang.lisp.x.  It may also
  1583.    be found in the Scheme Repository.
  1584.  
  1585. Free Scheme Implementations implemented in Lisp:  
  1586.  
  1587.    Peter Norvig's book "Paradigms of AI Programming" has a chapters about
  1588.    Scheme interpreters and compilers, both written in Common Lisp. The
  1589.    software from the book is available by anonymous ftp from
  1590.    unix.sri.com:/pub/norvig and on disk in Macintosh or DOS format from
  1591.    the publisher, Morgan Kaufmann.  For more information, contact: Morgan
  1592.    Kaufmann, Dept. P1, 2929 Campus Drive, Suite 260, San Mateo CA 94403,
  1593.    or call Toll free tel: (800) 745-7323; FAX: (415) 578-0672
  1594.  
  1595.    PseudoScheme is available free by anonymous ftp from
  1596.       ftp.cs.cornell.edu:/pub/jar/pseudo-2-9.tar.gz
  1597.       swiss-ftp.ai.mit.edu:/archive/pseudo/pseudo-2-8.tar.Z
  1598.    It is Scheme implemented on top of Common Lisp, and runs in Lucid,
  1599.    Symbolics CL, VAX Lisp under VMS, and Explorer CL. It should be
  1600.    easy to port to other Lisps. It was written by Jonathan Rees
  1601.    (jar@altdorf.ai.mit.edu, jar@cs.cornell.edu). Send mail to
  1602.    info-clscheme-request@mc.lcs.mit.edu to be put on a mailing list
  1603.    for announcements. Conforms to R4RS except for lacking a correct
  1604.    implementation of call/cc. It works by running the Scheme code
  1605.    through a preprocessor, which generates Common Lisp code. 
  1606.  
  1607.    Scheme84 is in the public domain, and available by mail from Indiana
  1608.    University. It runs on the VAX in Franz Lisp under either VMS or BSD Unix.
  1609.    To receive a copy, send a tape and return postage to: Scheme84
  1610.    Distribution, Nancy Garrett, c/o Dan Friedman, Department of Computer
  1611.    Science, Indiana University, Bloomington, Indiana. Call 1-812-335-9770
  1612.    or send mail to nlg@indiana.edu for more information. It will also
  1613.    run in Jeff Dalton's port of Franz Lisp to Net/Free/386BSD on 386-like
  1614.    machines.  (See the Lisp FAQ for information on Franz Lisp.)
  1615.    Scheme84 is available by anonymous FTP from 
  1616.       ftp://ftp.cs.indiana.edu/pub/scheme-repository/imp/scheme84.tar.gz
  1617.  
  1618.    Scheme88 is available by anonymous ftp from rice.edu:/public/scheme88.sh
  1619.    and also from the Scheme Repository.
  1620.  
  1621. ----------------------------------------------------------------
  1622. Subject: [2-2] Commercial Scheme implementations.
  1623.  
  1624. Chez Scheme:
  1625.  
  1626.    Chez Scheme Version 5 is a high-performance implementation of Scheme
  1627.    conforming to the IEEE/ANSI Scheme Standard and the R4RS.  Chez Scheme
  1628.    provides an incremental optimizing compiler, complete run-time library,
  1629.    generation-based garbage collector, interactive inspector, and C
  1630.    interface.  New Version 5 features include improved performance,
  1631.    lexical macros, multiple values, shared incremental heaps, guardians
  1632.    and weak pairs, and generic ports.  Version 5 is available for Sparc
  1633.    SunOS and Solaris, Alpha OSF/1, SGI IRIX 5.X, Motorola mc88000 SVR3/4,
  1634.    80386 NeXT Mach, BSDI BSD/386, and Linux.  More information on Chez
  1635.    Scheme can be obtained via anomymous ftp from 
  1636.       ftp.cs.indiana.edu:/pub/scheme/chezscheme/
  1637.    Site license fees start at $9000 ($4500 academic).  We are not able to
  1638.    handle personal sales at this time.  For detailed pricing and ordering
  1639.    information contact sales@cadence.bloomington.in.us or Kent Dybvig at
  1640.    dyb@cs.indiana.edu.  Cadence Research Systems, 3814 Devonshire South,
  1641.    Bloomington, IN 47408-9698, USA.  Phone 812-333-9269, fax 812-332-4688.
  1642.  
  1643. EdScheme, WinScheme Editor, 3DScheme, and "The Schemer's Guide":
  1644.  
  1645.    Schemers Inc. publishes software and textbooks that promote the
  1646.    use and advancement of Scheme in the educational and commercial
  1647.    sectors. Their products include:
  1648.  
  1649.    +  The WinScheme Editor v1.02. This is a Windows full-featured MDI
  1650.       (Multiple Document Interface) editor for Scheme programs. It knows
  1651.       about Scheme syntax and contains comprehensive code formatting
  1652.       facilities. It provides a channel for sending programs direct to
  1653.       Windows-based Scheme interpreters, allowing users to develop, test,
  1654.       and edit Scheme code from within the editor. The WinScheme Editor
  1655.       also includes a substantial set of context-sensitive online
  1656.       documentation for the programming environment and the Scheme
  1657.       language.  The WinScheme Editor requires MS Windows 3.1 or later with
  1658.       2MB RAM and 3MB hard disk space.  The retail price for the WinScheme
  1659.       Editor is $89.95.
  1660.  
  1661.    +  EdScheme for Windows v4.2. This is an R4RS-compatible Windows-based
  1662.       Scheme interpreter. It is seamlessly integrated into the WinScheme
  1663.       Editor and provides a fully customizable transcript window that
  1664.       journals Scheme sessions and serves as a command window.  EdScheme
  1665.       can be customized by specifying a load-path, a start-up file of
  1666.       library procedures, and setting its level of Windows multi-tasking
  1667.       tolerance. Currently in beta release, EdScheme for Windows will
  1668.       include a turtle graphics interface, primitives for creating windows
  1669.       and menus, rational/complex number arithmetic, and a debugging
  1670.       facility in the final release.  EdScheme for Windows requires MS
  1671.       Windows 3.1 or later with 4MB RAM and 4MB of hard disk space.  The
  1672.       retail price for EdScheme for Windows is $129.95. (Note: The
  1673.       WinScheme Editor is integrated into EdScheme and does not need to be
  1674.       ordered separately.)
  1675.  
  1676.    +  3DScheme for Windows v1.0. This is a Windows-based R4RS Scheme
  1677.       interpreter incorporating over 450 geometrical Scheme primitives that
  1678.       access Spatial Technology Inc's ACIS (R) Geometric Modeling Kernel,
  1679.       the de facto industry standard in 3D modeling. The 3D modeling
  1680.       features include:
  1681.         -  construction of solid bodies from blocks, cylinders, cone
  1682.            frustums, spheres, and toruses.
  1683.         -  construction of wire-bodies from straight, circular,
  1684.            elliptical, Bezier, and spline edges.
  1685.         -  construction of solids by extruding planar faces or
  1686.            profiles along a vector or revolving about an axis.
  1687.         -  application of rigid transformations, uniform scaling, and
  1688.            boolean operations. 
  1689.         -  intersect, trim, fillet, and chain edges.
  1690.         -  simultaneous views of solids from several different angles.
  1691.         -  dynamically accepted event-driven input for picking,
  1692.            rubber banding, or dragging.
  1693.         -  rendering of solids using flat or Gouraud technology and
  1694.            configurable refinements, materials, texture spaces, and
  1695.            render lights. 
  1696.         -  saving and loading collections of solid and wire entities
  1697.            from disk in .sat format.
  1698.         -  outputting rendered images as high resolution bitmaps or
  1699.            Postscript files. 
  1700.       As with EdScheme for Windows, 3DScheme is seamlessly integrated with
  1701.       the WinScheme Editor.  3DScheme also ships with the "Getting Started
  1702.       with Scheme" book.  3DScheme requires MS Windows 3.1 or later with
  1703.       8MB RAM and 16MB of hard disk space. A 3DScheme demo program is
  1704.       available from the Scheme repository in the "promo" directory or may
  1705.       be requested from Schemers Inc.  3DScheme for Windows retails for
  1706.       $495.  (Note: The WinScheme Editor is integrated into 3DScheme and
  1707.       does not need to be ordered separately.)
  1708.  
  1709.    +  EdScheme for Macintosh v4.0. This is an R4RS-compatible
  1710.       Macintosh-based Scheme interpreter.  The programming environment
  1711.       takes advantage of the capabilities of the Macintosh computer.  Its
  1712.       user interface includes a full-featured integrated editor, with
  1713.       special capabilities such as parenthesis-matching, program
  1714.       formatting, file indexing, and template editing.  In addition,
  1715.       customized transcript and debugging windows featuring colored and
  1716.       styled text are provided.  The interpreter features a powerful and
  1717.       comprehensive turtle graphics interface, unlimited precision "bignum"
  1718.       integral and rational/complex number arithmetic, file handling
  1719.       facilities, and language extensions using macros and transformers.
  1720.       EdScheme for Macintosh runs from floppy or hard drive and requires a
  1721.       Mac Plus or later, System 6.0.4 or better, and 1MB RAM.  EdScheme for
  1722.       Macintosh retails for $59.95.
  1723.  
  1724.    +  EdScheme for DOS v3.4. This is a DOS-based Scheme interpreter that
  1725.       incorporates a large subset of R4RS.  EdScheme for DOS features an
  1726.       integrated editor with automatic parenthesis-matching, a turtle
  1727.       graphics interface, debugging facility, comprehensive file-handling
  1728.       capabilities, macros and more.  It runs from floppy or hard drive and
  1729.       requires MS DOS 3.3 or later and 512KB RAM.  EdScheme for DOS retails
  1730.       for $49.95.
  1731.  
  1732.    + "The Schemer's Guide" by Iain Ferguson with Edward Martin and Burt
  1733.       Kaufman.  Foreword by Daniel Friedman.  The Schemer's Guide presents
  1734.       the elements of modern computer programming in an easy-to-follow and
  1735.       entertaining manner.  The book introduces students to the Scheme
  1736.       programming language, guiding them through such concepts as
  1737.       functional programming, recursion, data structures, higher order
  1738.       functions, delayed evaluation, and object-oriented programming.  The
  1739.       Schemer's Guide concludes with a significant game-playing project
  1740.       involving artificial intelligence. The book strikes a good balance
  1741.       between theory and practice, while nurturing good programming
  1742.       practices.  The Schemer's Guide has a proven track record of several
  1743.       years use in teaching the art of Scheme programming to high school
  1744.       students and college undergraduates. A comprehensive teacher's guide
  1745.       and an additional set of resource materials including worksheets,
  1746.       quizzes, projects, and exams are available to instructors using this
  1747.       text.  The retail price of the book is $35.95. (A Spanish
  1748.       translation of "The Schemer's Guide" will be available by August 1995.)
  1749.  
  1750.    +  "Getting Started with Scheme: Using the ACIS 3D Toolkit" by Edward
  1751.       Martin.  Co-published with Spatial Technology Inc., this 250-page
  1752.       book includes all you need to know about Scheme, mathematics, and
  1753.       solid modeling to become a skilled 3D modeler using 3DScheme.  The
  1754.       retail price for the book is $35.95, but is included free with
  1755.       3DScheme.
  1756.  
  1757.    For more information about these products, write to Schemers Inc.,
  1758.    2136 NE 68th Street, Suite 401, Fort Lauderdale, FL 33308, call
  1759.    305-776-7376, or fax 305-776-6174. You can also send email to 
  1760.    71020.1774@compuserve.com. Schemers' European distributor, Lambda
  1761.    Publications, is reachable by phone at 44-793-695296 or by email on
  1762.    100015.1465@compuserve.com.
  1763.  
  1764. Ibuki PC Scheme:
  1765.  
  1766.    Ibuki PC Scheme 5.01 is a modern, up-to-date implementation of TI
  1767.    PC-Scheme (see [2-1]). Ibuki purchased the rights to TI PC Scheme
  1768.    on July 13, 1992. Ibuki PC Scheme runs under DOS on all IBM
  1769.    compatible PCs, including 486s, and can use up to 4mb of extended
  1770.    memory. It will also run under Windows 3.1. For more information,
  1771.    contact IBUKI, 340 Second Street, PO Box 1627, Los Altos, CA 94022,
  1772.    phone (415) 961-4996, fax (415) 961-8016, email Richar Weyhrauch
  1773.    <rww@ibuki.com>. Ibuki has a special pricing program for schools
  1774.    teaching Scheme in courses. 
  1775.  
  1776. MacScheme:
  1777.  
  1778.    MacScheme is a Scheme interpreter and compiler for the Apple Macintosh, and
  1779.    includes an editor, debugger and object system.  MacScheme costs $125
  1780.    (includes compiler) and Scheme Express costs $70 (interpreter only). It
  1781.    requires 1mb RAM. A development environment (MacScheme+Toolsmith) costs
  1782.    $495. Conforms to the Revised^4 Report on the Algorithmic Language Scheme.
  1783.    MacScheme+Toolsmith includes support for menus, windows, and interfaces to
  1784.    the Macintosh Toolbox, and can create small standalone Macintosh
  1785.    executables. Implemented by Will Clinger, John Ulrich, Liz Heller and Eric
  1786.    Ost.  Write to: Lightship Software, PO Box 1636, Beaverton, OR 97075, or
  1787.    call (503) 292-8765. They're moving to California. The temporary phone
  1788.    number is 415-940-4008 (Liz Heller). The new phone number will be
  1789.    415-694-7799, or fax bug reports to 415-694-7705 or 800-441-5015. 
  1790.    MacScheme is distributed by Academic Computing Specialists (ACS),
  1791.    2015 East 3300 South, Salt Lake City, UT 84109-2630, 1-800-531-3227
  1792.    or 1-800-552-1601 (801-484-3923), fax 801-467-2200. These products
  1793.    may also be purchased from Academic Computing Specialists, PO Box
  1794.    711, Dewey, AZ 86327, tel 602-632-7176, fax 602-632-7631.
  1795.  
  1796. ----------------------------------------------------------------
  1797. Subject: [2-3] What Scheme-related discussion groups and mailing lists exist?
  1798.      
  1799. Before posting to any discussion group, please read the rest
  1800. of this FAQ, to make sure your question isn't already answered.
  1801.  
  1802. See the Lisp FAQ for a list of Lisp-related discussion groups and
  1803. mailing lists. We list here only those newsgroups and mailing lists
  1804. directly associated with Scheme.
  1805.  
  1806. Newsgroups:
  1807.  
  1808.    comp.lang.scheme        General Scheme-related discussion.
  1809.                            This newsgroup is available in digest
  1810.                            fromat as part of the Scheme Digest
  1811.                            scheme@mc.lcs.mit.edu.
  1812.    comp.lang.scheme.c      Discussion of C-Scheme, a scheme dialect
  1813.                            more commonly known as "MIT Scheme".
  1814.                            This newsgroup is gatewayed to the
  1815.                            info-cscheme@zurich.ai.mit.edu mailing list.
  1816.    comp.lang.lisp.x        Discussion of XLISP, a dialect of Lisp, and XScheme.
  1817.    comp.lang.dylan         Discussion of Dylan (see [4-6]), Apple's
  1818.                            new Scheme-like programming language. Gatewayed to
  1819.                            info-dylan@cambridge.apple.com. 
  1820.  
  1821. We list several mailing lists below. In general, to be added to
  1822. a mailing list, send mail to the "-request" version of the address.
  1823. This avoids flooding the mailing list with annoying and trivial
  1824. administrative requests. [To subscribe to info-mcl, info-dylan, or
  1825. other mailing lists based at cambridge.apple.com, send a message to
  1826. majordomo@cambridge.apple.com with "subscribe <list_name>" in the
  1827. message body. Likewise use "unsubscribe <list_name>" to cancel your
  1828. subscription and "help" to get help.]
  1829.  
  1830.  
  1831. General Scheme Mailing Lists:
  1832.  
  1833.    scheme@mc.lcs.mit.edu           Discussion of Scheme. Gatewayed to
  1834.                                    the comp.lang.scheme newsgroup.
  1835.    scheme@ai.mit.edu               General discussion about Scheme.
  1836.  
  1837.  
  1838. Particular Flavors of Scheme:
  1839.  
  1840.    info-cscheme@altdorf.ai.mit.edu,
  1841.    info-cscheme@zurich.ai.mit.edu  C-Scheme. Gatewayed to the
  1842.                                    comp.lang.scheme.c newsgroup.
  1843.  
  1844.    t-project@cs.yale.edu           T, a dialect of Scheme.
  1845.  
  1846.    info-clscheme@mc.lcs.mit.edu    PseudoScheme
  1847.  
  1848.    info-dylan@cambridge.apple.com  Dylan (not really scheme, but)
  1849.  
  1850. ----------------------------------------------------------------
  1851. ;;; *EOF*
  1852.